长时间不返回
表级锁
MDL 读锁与写锁冲突
通过查询 sys.schema_table_lock_waits 这张表,我们就可以直接找出造成阻塞的 process id,把这个连接用 kill 命令断开即可。
等 flush
flush 操作需要关闭表,如果有查询或事务长时间打开表,就会被阻塞,可以使用 show processlist 明令查看
行锁
可以查询 sys表 sys.innodb_lock_waits
返回时间长
注意 lock in share mode 有时会比不加快,因为使用了当前读,如果有一个很长的事务,一致性读会通过 undo log 一条条执行到最开始