数据库隔离级别问题

来源:5-3 事务和乐观锁

bbmouse

2021-11-04

老师想问下,真实的生产项目,mysql的线上一般用什么隔离级别?
我一直以为都是用默认的rr,但听说实际上都用rc? 为什么呢?

写回答

1回答

ccmouse

2021-11-10

postgres和sql server默认都是rc。但mysql的默认是rr。

由于rr比rc要严格,而其它数据库大多采用rc,实际上的确有在mysql中使用rc的做法。

0
2
ccmouse
回复
bbmouse
会的,但隔离级别越高所花的代价也越大。比如rr解决幻读就需要在每个transaction里保留一个之前读到数据的副本。所以我们根据需求来。 一般我们开transaction,用的比较多的是他的Atomicity功能,也就是原子性。我们可能要修改几张表,确保它们数据的一致性,要么都改成功,要么都改不成功,如果只是这样的需求,不需要很高的隔离级别。 当然,默认rr也好,rc也好,每一个transaction都可以根据需求去设置自己所需要的级别。
2021-11-11
共2条回复

Google面试官亲授-Java面试新手尊享课

为面试新手量身定制的Java面试尊享课,解锁“鲤鱼跃龙门”的妙招

2853 学习 · 180 问题

查看课程