一次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事务

相关文章
相关标签/搜索