Mysql 事务ACID特性及事务隔离级别

Mysql 事务ACID特性及事务隔离级别

From High Performance Mysql

ACID 特性

  • 原子性 Atomicity
    一个事务必须视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中一部分操作。
  • 一致性 Consistency
    数据库总是从一个一致性状态转换到另一个一致性状态。
  • 隔离性 Isolation
    通常来说,一个事务所做的修改在最终提交之前,对其他事务是不可见的。
  • 持久性 Durability
    一旦事务提交,则其所做的修改就会永久存储到数据库中。

事务隔离级别

  • 未提交读 Read Uncommited
    事务中的修改,即使没有提交,对其他事务也是可见的,有时也被称为脏读。
  • 提交读 Read Commited
    一个事务开始时,只能看见已经提交的事务所所做的修改。换句话说,一个事务从开始直到提交之前,所做的任何修改对其他任何事务都是不可见的。有时也称之为不可重复读, 因为两次执行同样的查询,可能会得到两种不同的结果。
  • 可重复读 Repeatable Read
    该级别能够解决脏读的问题,保证了在同一个事务中多次读取同样的记录结果是一致的。该级别是mysql的默认隔离级别
  • Serializable
    最高隔离级别,通过事务串行执行,避免了前面说的所有的问题。

猜你喜欢

转载自blog.csdn.net/zhanlovepei/article/details/66475832