14.5.5.2 Deadlock Detection and Rollback Deadlock 检测和回滚

14.5.5.2 Deadlock Detection and Rollback  Deadlock 检测和回滚

InnoDB 自动检测事务死锁和回滚一个事务

InnoDB 尝试挑选小的事务来回滚,事务的大小是有 rows inserted, updated, or deleted.的数量决定的


InnoDB 知道表锁 如果 innodb_table_locks = 1 (the default) and autocommit = 0, 


MySQL 层面知道关于行锁

否则,InnoDB 不能检测死锁 一个表的表通过一个LOCK TABLES 语句设置或者通过一个存储引擎设置。


解决那些问题通过设置innodb_lock_wait_timeout 系统变量的值


当InnoDB 执行一个完整的事务回滚,通过事务设置的所有的锁都被释放。


然而,如果只是一个单独的SQL语句被回滚作为一个错误结果,


一些通过语句设置的锁可能被保存。

原文地址:https://www.cnblogs.com/zhaoyangjian724/p/6199042.html