Mysql中事物及隔离级别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql中事物及隔离级别相关的知识,希望对你有一定的参考价值。

什么叫事务

事务就是一组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 事物及隔离级别

Mysql 查看及设置事物隔离级别

浅谈Mysql数据库事物及数据库引擎

浅谈Mysql数据库事物及数据库引擎

事物及事物隔离级别

mysql 事物隔离级别rr还是rc好