一次mysql的鎖表問題(這種問題大概有三層)

問題描述:mysql

通常來講有什麼事務卡死了mysql,直接show processlist找到相應進程而後kill掉就行,但這回很奇怪,show processlist看不到訪問問題表的進程,問題表能夠增刪改,但作alter,drop,truncate等操做時就回wait卡死sql

 

show processlist能夠找到卡死表的長事務,而未提交事務是看不到的須要在表information_schema.innodb_trx裏查看session

切到root帳號,select * from information_schema.innodb_trx\G;orm

找到了幾個一直在RUNNING的事務,把trx_mysql_thread_id全kill一遍,發現又出來了兩條事務,但問題表已經解鎖了。進程

 

此次遇到的算是第二層,即未提交的事務,再深一層可能有information_schema.innodb_trx裏也沒有的狀況,這個多是有一個失敗的操做但獲取的鎖一直存在,這樣就要在performance_schema.events_statements_current表裏去找這個session事務

相關文章
相關標籤/搜索