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 调用一个存储函数在一个事务, 语句的函数失败,

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

  • 相关阅读:
    [gj]三国攻势图
    [svc]msmtp+mutt发附件,发邮件给多个人
    [sh]清理memcached缓存
    [svc]jdk1.7.0_13(系列)下载url
    [svc]linux查看主板型号及内存硬件信息
    [svc][op]如何查看当前Ubuntu系统的版本
    [svc][bg]phabricator-zh_CN汉化包
    [na]台式机装原版Win2008R2
    [svc]salt源码安装软件和yum安装软件
    JSTL的相关使用
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13351196.html
Copyright © 2011-2022 走看看