zoukankan      html  css  js  c++  java
  • 14.2.2 The InnoDB Transaction Model and Locking InnoDB 事务模型和锁定

    14.2.2 The InnoDB Transaction Model and Locking InnoDB 事务模型和锁定

    14.2.2.1 InnoDB Lock Modes
    14.2.2.2 Consistent Nonlocking Reads
    14.2.2.3 Locking Reads (SELECT … FOR UPDATE and SELECT … LOCK IN SHARE MODE)
    14.2.2.4 InnoDB Record, Gap, and Next-Key Locks
    14.2.2.5 Avoiding the Phantom Problem Using Next-Key Locking
    14.2.2.6 Locks Set by Different SQL Statements in InnoDB
    14.2.2.7 Implicit Transaction Commit and Rollback
    14.2.2.8 Deadlock Detection and Rollback
    14.2.2.9 How to Cope with Deadlocks

    实施一个大规模的,繁忙的,或者高度可靠的数据库应用,从一个不同的数据库系统 大量代码,

    或者调整MySQL的性能,你必须了解交易的概念和锁 他们一来的InnoDB 存储引擎:

    在InnoDB事务模型,目的是集合一个多版本的数据库 传统的2阶段锁的最好的特性。

    InnoDB 锁定在行级别,运行查询不锁定一致性读 默认的,

    在Oracle数据库里. lock 信息在InnoDB 是被存储,因此存储有效的 锁升级是不需要的。

    典型的,多个用户是不允许锁定每行在InnoDB 表里,或者 任何随机的数据子集,没有造成InnoDB 内存耗尽。

    在InnoDB里,所有的用户的活动发生在一个交易。如果 autocommit mode 是启用,

    每个SQL 语句构成一个单独的事务。默认情况下,MySQL 开启每个新的连接 启用自动提交,

    MySQL 在每个语句后提交 如果语句不返回错误, 如果语句返回一个错误,提交或者回滚依赖错误。 See Section 14.18.4,

    “InnoDB Error Handling”.

    一个会话启用自动提交,可以执行多个语句在一个事务里通过 启动一个显示的START TRANSACTION

    或者BEGIN 语句和用COMMIT或者ROLLBACK 语句结束。See Section 13.3.1, “START TRANSACTION, COMMIT, and ROLLBACK

    Syntax”.

    如果自动提交模式是关闭 ,session 级别设置为SET autocommit = 0,

    session总是打开一个事务。 一个COMMIT 或者ROLLBACK 语句结束当前的事务和一个新的开始。

    一个COMMIT 意味着 在当前会话里的改变变得永久性的 ,对其他会话可见。

    一个ROLLBACK 语句, 换句话说, 取消当前事务里的所有修改。

    COMMIT和ROLLBACK 都会释放当前回鹘的所有的InnoDB 锁。

    在SQL:1992 术语事务隔离基本,默认的InnoDB 是可重复读的。InnoDB 提供所有的4种事务隔离级别

    READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ, and SERIALIZABLE.

    用户可以改变实例隔离级别 对于一个单独的会话或者对于所有的随后的连接 使用SET TRANSACTION 语句。

    来设置server的默认隔离级别对于所有的连接,使用 –transaction-isolation 选项在命令行或者选项文件

    For detailed information about isolation levels and level-setting syntax, see Section 13.3.6, “SET TRANSACTION

    Syntax”.

    在行锁级别,InnoDB 通常使用next-key locking.这意味着除了index 记录,

    InnoDB 也可以锁定 一个索引的记录来阻止其他会话的插入 当索引的值需要被插入到gap

  • 相关阅读:
    选择器
    asp.net 操作ftp类
    女装类视觉设计感悟
    跨域读取js变色
    关于jQuery的ajax初级应用
    打造前端自动化编译环境(思路)
    <base>标签在ie6下的问题
    通过压缩图片 来提升页面加载速度
    原来我一直不懂cookie
    去处浏览器的默认效果(autocomplete, outline)
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13351235.html
Copyright © 2011-2022 走看看