<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
前言:
昨晚我正在床上睡得著著的,突然來了一條簡訊。
什麼?線上的訂單無法取消!
我趕緊登入線上系統,檢視業務紀錄檔。
發現有MySQL鎖超時的錯誤紀錄檔。
不用想,肯定有另一個事務正在修改這條訂單,持有這條訂單的鎖。
導致當前事務獲取不到鎖,一直等待,直到超過鎖超時時間,然後報錯。
既然問題已經清楚了,接下來就輪到怎麼排查一下到底是哪個事務正在持有這條訂單的鎖。
好在MySQL提供了豐富的工具,幫助我們排查鎖競爭問題。
現場復現一個這個問題:
建立一張使用者表,造點資料:
CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主鍵ID', `name` varchar(50) NOT NULL DEFAULT '' COMMENT '姓名', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
事務1,更新id=1的使用者姓名,不提交事務:
begin; update user set name='一燈' where id=1;
事務2,刪除id=1的資料,這時候會產生鎖等待:
begin; delete from user where id=1;
接下來,我們就通過MySQL提供的鎖競爭統計表,排查一下鎖等待問題:
先查一下鎖等待情況:
select * from information_schema.innodb_lock_waits;
可以看到有一個鎖等待的事務。
然後再查一下正在競爭的鎖有哪些?
select * from information_schema.innodb_locks;
可以看到,MySQL統計的非常詳細:
lock_trx_id 表示事務ID
lock_mode 表示排它鎖還是共用鎖
lock_type 表示鎖定的記錄,還是範圍
lock_table 鎖的表名
lock_index 鎖定的是主鍵索引
再查一下正在執行的事務有哪些?
select * from information_schema.innodb_trx;
可以清楚的看到正在執行的事務有兩個,一個狀態是鎖等待(LOCK WAIT
),正在執行的SQL也列印出來了:
delete from user where id=1;
正是事務2的刪除語句。
不用問,第二條,顯示正在執行狀態(RUNNING)的事務就是正在持有鎖的事務1,MySQL執行緒id(trx_mysql_thread_id
)是193。
我們用MySQL執行緒id查一下事務執行緒id:
select * from performance_schema.threads where processlist_id=193;
找到對應的事務執行緒id是218,然後再找一下這個執行緒正在執行的SQL語句:
select THREAD_ID,CURRENT_SCHEMA,SQL_TEXT from performance_schema.events_statements_current where thread_id=218;
可以清楚的看到這個執行緒正在執行的SQL語句就是事務1的update語句。
持有鎖的SQL語句找到了,接下來再去找對應的業務程式碼也就輕而易舉了。
以上是基於MySQL5.7版本,在MySQL8.0版本中有些命令已經刪除了,替換成了其他命令,下篇文章再講一下MySQL8.0怎麼定位MySQL鎖超時問題。
到此這篇關於一文教你學會定位線上MySQL鎖超時問題的文章就介紹到這了,更多相關MySQL鎖超時內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45