zoukankan      html  css  js  c++  java
  • 14.2.2.7 Implicit Transaction Commit and Rollback和14.2.2.8 Deadlock Detection and Rollback

    14.2.2.7 Implicit Transaction Commit and Rollback 隐式的事务提交和回滚

    默认情况下,MySQL 启动会话对于每个新的连接 是自动提交模式,

    所以MySQL 在每个SQL语句执行后提交 如果SQL语句不返回错误

    如果SQL 语句返回一个错误,commit 或者rollback 行为依赖错误。

    如果一个会话关闭自动提交,没有显示的提交最后的事务,MySQL 回滚事务。

    14.2.2.8 Deadlock Detection and Rollback 死锁检测和回滚

    InnoDB 自动检测事务死锁和回滚一个事务或者多个事务来解决死锁。

    InnoDB 尝试挑选小的事务回滚, 事务的大小取决于插入,更新,删除记录的数目。

    InnoDB 是意识到表锁 如果 innodb_table_locks = 1 (the default) and autocommit = 0,

    MySQL layer 在它上面 知道关于row-level locks.

    否则, InnoDB 不能检测deadlocks 当一个表lock 设置通过一个MySQL LOCK TABLES 语句

    或者 一个lock 通过存储引擎设置相比InnoDB 被涉及。 解决那些冲突通过设置innodb_lock_wait_timeout 系统变量

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

    然而,如果一个单独的SQL语句 被回滚 由于错误,

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

    这个发生在当InnoDB 存储行锁 以一种格式 它不能知道

    如果一个SELECT 调用一个存储函数在一个事务, 语句的函数失败,

    语句回滚。此外, 如果回滚被执行,整个事务被回滚。

  • 相关阅读:
    SpringMVC-------1.spriingMVC简介和简单案例
    MyBatis-----7.pageHelper分页助手
    MyBatis-----4.实现关联表查询
    MyBatis-----6.逆向工程(generator)
    MyBatis-----1.MyBatis简介和使用
    MyBatis-----2.通过映射接口实现CRUD
    Spring-2
    Spring-1
    php调用阿里云手机归属地查询
    php身份证验证
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13351196.html
Copyright © 2011-2022 走看看