爱程序网

mysql事务

来源: 阅读:

1. 事务并不专属于mysql

2. 事务的ACID特性

  1)原子性(atomicity)  

  一个事务必须被视为一个不可分割的最小工作单元,整个事务中得所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来讲,不可能只执行其中的一部分

      操作,这就是事务的原子性。

  2)一致性(consistency)

  数据库的总是从一个一致性的状态转换到另一个一致性的状态。

  3)隔离性(isolation)

  通常来说,一个事务所做的修改在最终提交之前,对其他事务是不可见的。

  4)持久性(durability)

  一旦事务提交,则其所做的修改就会永久保存到数据库中。

3. 隔离级别

  1)READ UNCOMMITTED(未提交读)

    在该级别,事务中得修改,即使没提交,对其他事务也是可见的。

  2)READ COMMITTED(提交读)

    在提交之前对其他事务都是不可见的

  3)REPEATABLE READ(可重复读)[mysql默认的事务隔离级别]

    该级别保证了在同一个事务中多次读取同样的记录的结果是一致的。

    但是会产生幻读得问题

  4)SERIALIZABLE(可串行化)

    该级别会在读取的每一行数据上都加锁

 

隔离级别脏读可能性不可重复读可能性幻读可能性加锁读
READ UNCOMMITEDYesYesYesNo
READ COMMITTEDNoYesYesNo
REPEATABLE READNoNoYesNo
SERIALIZABLENoNoNoYes

 

 

 

 

 

 

4.死锁产生的原因

  1)因为真正的数据冲突

  2)存储引擎的实现方式

5.mysql 提供了两种事物型的引擎:Innodb 、NDB Cluster

6.多版本并发控制(MVCC)

 

Tags:mysql事务
关于爱程序网 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助