作业1:企业级开发中通常会把事务隔离级别设置为 Read Committed,你能说出这样做的理由吗 ?(可以对比其他隔离级别的劣势去解释)

来源:5-26 【扩展与练习】关于 MySQL 事务隔离级别的介绍及作业

慕容勇琪

2020-11-27

保证数据的读取都是最新的,同时保证的数据查询的效率,至于为什么不设置高一点,应该是能在代码逻辑方面能够做到处理高并发下可能出现的幻读和不可重复读,而代码逻辑上造成的性能损耗比数据库中设置高等级造成的性能损耗要小吧

写回答

1回答

张勤一

2020-11-27

同学你好:

    MySQL 的默认隔离级别是“可重复读”,但是,我们在工作中几乎都是在使用“读已提交”这个隔离级别,那么,其中的原因有以下三点:

    (1)在RR隔离级别下,存在间隙锁,导致出现死锁的几率比RC大的多

    (2)在RR隔离级别下,条件列未命中索引会锁表,而在RC隔离级别下,只锁行

    (3)在RC隔离级别下,半一致性读 (semi-consistent) 特性增加了 update 操作的并发性


    欢迎来 QQ 群随时交流、讨论,也非常感谢同学的支持!

1
0

Spring Cloud微服务架构 设计实现广告系统

广告营销系统,未来大中型企业的标配

2136 学习 · 927 问题

查看课程