14.3.5.2 Deadlock Detection and Rollback 死锁检测和回滚:

来源:互联网 发布:php开源项目源码 编辑:程序博客网 时间:2024/06/06 06:42
14.3.5.2 Deadlock Detection and Rollback  死锁检测和回滚:InnoDB 自动检查四艘,回滚一个事务或者事务来打破死锁。InnoDB 试图选择小的事务来回滚, 事务的大小是由 插入 修改 或者删除的记录数决定InnoDB 知道 表锁 如果  innodb_table_locks = 1 (the default) ,autocommit = 0MySQL layer 上面只是关于 row-level locks. 否则,InnoDB 不能检测到死锁 当表锁设置通过MYSQL LOCK TABLE 语句 或者通过存储引擎设置解决那些情况通过设置innodb_lock_wait_timeout 系统变量当InnoDB 执行一个完整的事务回滚,事务上设置的所有锁都被释放。然而, 如果只是单个的SQL语句被回滚作为一个错误结果,一些通过语句设置的锁可能被保持这个发生因为InnoDB 存储 row locks以这样一种格式如果一个SELECT 调用一个函数在事务里, 函数中的语句失败, 语句回滚。 此外,如果ROLLBACK 被执行在那之后,整个事务回滚

0 0
原创粉丝点击