码迷,mamicode.com
首页 > 数据库 > 详细

Mysql中事物及隔离级别

时间:2018-02-28 18:05:14      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:事务隔离界别   Mysql   ACID   

什么叫事务

事务就是一组sql组成的操作单元,要么操作全部成功,要么全部失败。

ACID属性

原子性(atomicity)

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

一致性(consistency)

数据库总是从一个一致的状态转换到另外一个一致的状态。比如总共两个update,在第一个update后,系统崩溃了,也不会对数据有影响,因为事务没提交。

隔离性(isolation)

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

持久性(durability)

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

事务隔离级别

并发事务带来的问题:

  • 脏读
    事务可以读取未提交的数据,叫脏读。
  • 不可重复读
    一个事务开始时,只能读取已经提交事务所做的修改。换句话说,一个事务从开始直到提交之前,所做的任何修改对其他事务都是不可见的。执行两次同样的查询,可能会得到不一样的结果。
  • 幻读
    是指当某个事务读取某个范围内的记录时,另外一个事务在该范围内插入了新的记录,当之前的事务再次读取该范围的记录时,会产生幻行。
隔离级别 脏读可能性 不可重复读可能性 幻读可能性
read uncommitted Yes Yes No
read committed No Yes Yes
repeatable read No No Yes
serializable No No No

Mysql中事物及隔离级别

标签:事务隔离界别   Mysql   ACID   

原文地址:http://blog.51cto.com/4436396/2074002

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!