Mysql中事物及隔离级别

什么叫事务

事务就是一组sql组成的操做单元,要么操做所有成功,要么所有失败。sql

ACID属性

原子性(atomicity)

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

一致性(consistency)

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

隔离性(isolation)

一个事务所作的修改在最终提交之前,对其余事务是不可见。ide

持久性(durability)

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

事务隔离级别

并发事务带来的问题:事务

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