我想知道是否有一种方法可以在记录到 innodb 中时将导致 mysql 数据库中死锁的每个事务存储在单独的表中?
最佳答案
在 5.5.30 版本中,innodb_print_all_deadlocks
变得可用。将其设置为ON
,但请注意,它使用的日志文件(可能是error.log
)可能会使磁盘困惑。
减少死锁数量的技术:
- 加快交易速度。
- 将 DML 语句移出事务(为什么这样做是可以的)。
- 如果某些语句中有
IN
或OR
(例如DELETEing
几行),则对它们进行排序。
最后一个可能将死锁转变为“locK_wait_timeout”,其中一个事务会默默地停止,直到另一个事务完成。
关于mysql - 存储mysql死锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53191682/