请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

数据库隔离级别问题

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

正在回答 回答被采纳积分+3

1回答

ccmouse 2021-11-10 19:52:20

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

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

0 回复 有任何疑惑可以回复我~
  • 提问者 bbmouse #1
    使用rc的话不是会有幻读问题吗?
    回复 有任何疑惑可以回复我~ 2021-11-11 15:24:56
  • ccmouse 回复 提问者 bbmouse #2
    会的,但隔离级别越高所花的代价也越大。比如rr解决幻读就需要在每个transaction里保留一个之前读到数据的副本。所以我们根据需求来。
    一般我们开transaction,用的比较多的是他的Atomicity功能,也就是原子性。我们可能要修改几张表,确保它们数据的一致性,要么都改成功,要么都改不成功,如果只是这样的需求,不需要很高的隔离级别。
    当然,默认rr也好,rc也好,每一个transaction都可以根据需求去设置自己所需要的级别。
    回复 有任何疑惑可以回复我~ 2021-11-11 21:16:27
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信