存储mysql死锁

e37o9pze  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(276)

我想知道是否有一种方法可以在innodb中记录导致mysql数据库死锁的每个事务的那一刻就将其存储在一个单独的表中?

vngu2lb8

vngu2lb81#

在版本5.5.30中, innodb_print_all_deadlocks 变得可用。设置为 ON ,但请注意日志文件(可能 error.log )它使用的磁盘可能会乱七八糟。
减少死锁数量的技巧:
加快交易速度。
将dml语句移出事务(如果这样做是可以的)。
如果有 IN 或者 OR 在某些陈述中(如 DELETEing 几行),对它们进行排序。
最后一个可能会将死锁转换为“lock\u wait\u timeout”,其中一个事务会静默地暂停,直到另一个事务完成。

相关问题