最近在考MySQL 8.0的OCP ,开个专题专门查漏补缺下
只是做备忘,有的概念只是一笔带过,具体可自行搜索
基于8.0.26
通过innodb_deadlock_detect变量来决定是否进行死锁检测,当开启时一旦发生死锁会回滚其中一个事务来解决,该会话被成为受害者,innodb试图回滚事务较小的会话,根据DML的操作
如果该参数被关闭,则会等到innodb_lock_wait_timeout 参数归档的时间来回滚事务
可以通过SHOW ENGINE INNODB STATUS.命令来查看最后一次死锁情况并进行处理
如果频繁发生死锁可以开启innodb_print_all_deadlocks 参数来打印所有的死锁到错误日志
需要有事务重做机制,对失败的事务进行重做