久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

怎么解決Mysql Sleep線程引發的鎖等待故障

150次閱讀
沒有評論

共計 1053 個字符,預計需要花費 3 分鐘才能閱讀完成。

本篇內容主要講解“怎么解決 Mysql Sleep 線程引發的鎖等待故障”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓丸趣 TV 小編來帶大家學習“怎么解決 Mysql Sleep 線程引發的鎖等待故障”吧!

背景:

負責的生產庫出現告警 too many connections.

解決過程:

1. 第一反應就是出現了大量的連接或者是 DDL 把實例打滿了,隨即登上實例嘗試登陸,卻發現已經連不上了。然后動態調大連接數后。使用如下 SQL 看到大量的 UPDATE 線程未執行完。

select id,host,user,db,command,state,time,left(info,200) from information_schema.processlist where command  Sleep  order by time desc limit 100;

 

2. 此時看到這個場景,大家大概率都會以為是表 tbl_prod 的 ID 沒有索引所以是全表查找更新,然而看到執行計劃卻發現并不是,反而是主鍵更新。

explain UPDATE tbl_prod SET status=1 WHERE id = 1198445;

3. 隨后查看 innodb 引擎當前的狀態, 發現很有意思的事了,這些 update 線程都在等待鎖,以其中一個線程為例。

show engine innodb status\G

4. 此時基本上可以斷定是有長事務未提交導致的大量主鍵更新等待了。我們采用如下 SQL 可以找到這個長連接。

select p.host,p.time,t.trx_mysql_thread_id,t.trx_started,left(p.info,100) from information_schema.innodb_trx t join information_schema.processlist p on t.trx_mysql_thread_id =p.id order by time desc,t.trx_started desc limit 20;

5. 可以看到上面的第一條執行時間最長的為 NULL 的線程占用鎖時間最長,其后則是大量的 update 等待線程了。那么我們將這個最長的 null 線程給 KILL 掉,問題即得到解決。

kill 2323514;

到此,相信大家對“怎么解決 Mysql Sleep 線程引發的鎖等待故障”有了更深的了解,不妨來實際操作一番吧!這里是丸趣 TV 網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-01發表,共計1053字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 东兰县| 定州市| 南投市| 泗洪县| 盐城市| 郓城县| 永丰县| 牡丹江市| 佛教| 阳西县| 钟祥市| 晋州市| 东辽县| 鲁山县| 高碑店市| 兴义市| 白城市| 内黄县| 特克斯县| 灵璧县| 遵义县| 威宁| 芜湖县| 沂源县| 廉江市| 武山县| 葵青区| 达拉特旗| 鹤壁市| 海林市| 女性| 清河县| 和田县| 寿阳县| 霍城县| 德保县| 建德市| 卓尼县| 商水县| 长子县| 田阳县|