MySQL事物隔离级别笔记
隔离级别 | 脏读(Dirty Read) | 不可重复读(NonRepeatable Read) | 幻读(Phantom Read) |
---|---|---|---|
未提交读(Read uncommitted) | yes | yes | yes |
已提交读(Read committed) | no | yes | yes |
可重复读(Repeatable read) | no | no | yes |
可串行化(Serializable ) | no | no | no |
-
未提交读(Read uncommitted):能读取到别的事务未提交的数据
-
已提交读(Read committed):只能读取到别的事务已经提交的数据
-
可重复读(Repeatable):在读取数据后直接加锁,其他事务无法修改和删除这些数据,但是防不住 insert 的新数据
-
可串行化(Serializable):读取用读取锁,写入用写入锁,这两个锁互斥,这样能保证数据绝对安全,但是性能低下
-
脏读(Dirty Read):可以读取到未提交的数据
-
不可重复读(NonRepeatable Read):在读取完数据后数据又修改并 commit 了,导致第二次读取的数据与第一次数据不一致(重点在修改数据)
-
幻读(Phantom Read):两次读取期间有新数据加入或者旧数据删除,导致不一致(重点在增删数据)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 惜别的秘密基地!
评论
UtterancesGiscus