mysql中的4种事务 隔离级别的简单理解

mysql事务隔离的简单理解

事务的原则是acid,只有串行化的隔离级别是符合acid原则的,其他隔离级别需要加锁才能实现acid原则,待探讨?

mysql中事务隔离级别有4种,

1、读未提交(read-uncommitted)

  两个事务修改同一个数据时,事务A读取到事务B未提交的数据,会产生脏读的问题

2、读提交(read-committed)

  两个事务修改同一个数据时,事务A两次查询中间,事务B对事务A查询的数据做了修改并提交,事务A两次查询的数据结果不一致,会产生不可重复读问题

3、可重复读(repeatable-read)

  两个事务修改同一个数据时,事务A两次查询中间,事务B对事务A查询的数据做了修改并提交,事务A两次查询的数据不一致,会产生幻读问题

4、串行化(serializable)

  两个事务修改同一个数据时,事务A进行中,事务B只能等待事务A执行完成才能进行,一次只能一个事务进行

mysql 数据库的默认隔离级别是repeatable-read,其他数据库的默认隔离级别是read-committed,aliyun的mysql 数据库默认的隔离级别是read-committed

read-committed 和 repeatable-read 可以通过加乐观锁或者悲观锁的方式解决数据不一致的问题

猜你喜欢

转载自www.cnblogs.com/xiongjinpeng/p/12750991.html