MySQL中InnoDB的事务隔离级别和锁

2018-04-25  本文已影响17人  10xjzheng

1.事务隔离级别

使用 show variables like 'tx_isolation' 可查看数据库当前的隔离级别。
具体分析请查看此文:事务隔离级别

1.1 读未提交 Read uncommitted

一个事务可以读取另一个未提交事务的数据

1.2 读提交 Read committed

一个事务要等另一个事务提交后才能读取数据。

1.3 可重复读 Repeatable read

保证了在当前事务中,多次读取统一条件的数据结果保持一致。原理是快照读和GAP锁。

1.4 序列化 Serializable

串行化执行。

2. 脏读、不可重复读、幻读

2.1 脏读

在当前事务中,读取到了别的事务未提交的数据。

2.2 不可重复读

在当前事务中,多次读取同一条件的数据不一致,重点在于数据记录字段被修改了。

2.3 幻读

在当前事务中,多次读取同一条件的数据记录条数不一致,重点在删除和添加。

3. 事务隔离级别和脏读、不可重复读、幻读的关系

image.png

4. 加锁分析

4.1 几个概念

4.2 demo分析

具体请查看大神的博客分析: MySQL 加锁处理分析

上一篇下一篇

猜你喜欢

热点阅读