不明白RC这个理论上的东西有什么现实意义吗?
地球上有哪种业务需要“在一个事务内对一个记录读两次”吗?
访问过一次,数据都在客户端内存条里面了,何必发起比内存访问慢一百万倍的网络请求呢?
不明白RC这个理论上的东西有什么现实意义吗?
地球上有哪种业务需要“在一个事务内对一个记录读两次”吗?
访问过一次,数据都在客户端内存条里面了,何必发起比内存访问慢一百万倍的网络请求呢?
RC 提升了并发能力,但带来了“幻读”的可能,需要自己在业务层处理;RR 不幻读,但并发能力大幅降低。
早年没有互联网那么大并发量的项目时,RR 足够用了,还少操心。等到高并发项目上来以后,人们才发现 RR 有性能瓶颈的。
软件工程看取舍,没有银弹,不存在一个万能的解决方案。
5 回答3.2k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
1 回答2.4k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
5 回答1.4k 阅读
3 回答1.2k 阅读✓ 已解决
你可以随便找个事务隔离的文章看看比如https://www.cnblogs.com/wyaok...,一般来说使用RC就行了,没必要使用RR.使用RR会理论上会增加锁表的几率.基本上大部分数据库默认隔离级别都是RC比如PostgreSQL、ORACLE、SQL Server和DB2,只有mysql因为历史遗留问题默认的事务隔离级别是RR,所以一般来说运维会调整mysql的事务隔离级别为RC,如图所示,隔离级别从上到下越来越大,也意味着执行的并发也越来越小.所占用的资源越来也高.
