show processlist
等MDL锁 通过查询 sys.schema_table_lock_waits 这张表,我们就可以直接找出造成阻塞的 process id,把这个连接用 kill 命令断开即可。 但是MySQL 启动时需要设置 performance_schema=on,相比于设置为 off 会有 10% 左右的性能损失
等行锁 怎么查出是谁占着这个写锁。如果你用的是 MySQL 5.7 版本,可以通过 sys.innodb_lock_waits 表查到。 mysql> select * from t sys.innodb_lock_waits where locked_table='test'.'t'
\G
这里为了把所有语句记录到 slow log 里,我在连接后先执行了 set long_query_time=0,将慢查询日志的时间阈值设置为 0