数据库隔离级别

2018-12-26  本文已影响7人  Tomy_Jx_Li

最近回过头来,发现以前的一些基础性的东西记忆不是很深了,在此重新梳理下。同时这里只是简单的记录,并没有深入的分析,因为任何一个东西都够一长篇文章的。后期有时间了可以重新写下。

数据库的事务四大特性,还有传说中的脏读、不可重复读、幻读

ACID,这个网上有很多资料不一一细说。比如这一篇就很不错。
事务的四大特性是如何保证的呢?
原子性通过undolog保证
一致性通过redolog保证
持久性通过redolog保证
隔离性通过锁机制保证
再说下自己对脏读、不可重复读、幻读的理解。
这里的理解都是以A事务为主事务,B事务为干扰事务来说明。

数据库的隔离级别

mysql的事务隔离级别

环境:mysql 5.7.24,引擎:innodb
这里主要测试了rr和rc以及ru三种。
rr下测试结果是:除了不会发生脏读、不可重复读以为。也不会发生幻读。具体原因下面分析。
rc下的结果:幻读出现、不可重复读出现。脏读未出现。
ru下的结果:都出现

所以mysql数据库下的rr类比于序列化。这里用了‘类比于’是因为rr下的读是基于mvcc(多版本并发控制机制),也就是一致性读。并不是真正的序列化,且要在rr隔离级别,同事innodb引擎下。而mvcc的实现是基于undolog的。可以查看这里了解MVCC。如果想进一步去了解可以多看看网上的一些资料。

上一篇 下一篇

猜你喜欢

热点阅读