- 四种隔离级别
- Read Uncommitted
- Read Committed
- Repeatable Read
- Serializable
- 有什么问题
- 脏写
- 两个事务并发写同一行记录,所有隔离级别下都不能允许发生这种情况
- 脏读
- 事务A读到事务B还未提交的写
- 不可重复读
- 事务中对同一行的多次读取的结果不同(因为两次读中间,其他事务对该行进行了更新并提交)
- 缓读
- 对某个范围的多次读取不同(因为两次读中间,其他事务在该范围内插入了数据并提交)
- 脏写
- 怎么解决
- MVCC
- 允许读写同时进行
- 事务利用MVCC进行的读称为一致性读或快照读
- 加锁
- 读写不能同时进行
- MVCC
- 四种隔离级别解决的问题
- Read Uncommitted
- 什么都没有解决,脏读、不可重复读、缓读都存在
- Read Committed
- 解决了脏读
- 通过ReadView实现,每次读都开启一个ReadView
- Read Committed
- 通过ReadView实现,第一次读才开启一个ReadView
- SQL标准中只要求RC解决脏读和不可重复读,InnoDB中同时解决了脏读、不可重复读和幻读
- Serializable
- 解决了脏读、不可重复读和幻读
- Read Uncommitted
MySQL隔离级别
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 1. 为什么事务存在隔离级别 InnoDB 相比 MyISAM 有两大特点,一是支持事务而是支持行级锁,事务的引入...
- title: 2020-07-16—MySQL隔离级别date: 2020-07-16 20:20:20categ...