大家在使用 MySQL 的时候,使用过除 REPEATABLE READ 之外的级别嘛?

2021-06-01 19:09:30 +08:00
 symons

既然 MySQL 有四个隔离级别,那其他三个隔离级别现在会有人在用吗?

如果没有人用,那他们存在的意义在哪里呢?求问

1958 次点击
所在节点    MySQL
11 条回复
aircjm
2021-06-01 19:19:45 +08:00
这个看你使用场景啊 有的比较严苛的场景会使用更高的隔离级别
symons
2021-06-01 19:28:04 +08:00
银行 /钱包的场景应该是比较严苛的,但是也不用最高级别( SERIALIZABLE ),用 REPEATABLE READ 完全可以,很难想象出来(没见过) READ UNCOMMITED 和 SERIALIZABLE 这俩级别在哪里会用到

对于 READ UNCOMMITED 的话,读非常多,写非常少这种场景可能会用到,不过如果这种场景,在 MySQL 前加一个缓存不是也能解决吗?
对于 SERIALIZABLE 这个级别,真的比较难想象,哪里会用到,太严格了
quiet1991
2021-06-01 19:28:57 +08:00
确实没碰到用其他 3 种隔离级别的情况
zjqzxc
2021-06-01 19:34:47 +08:00
READ UNCOMMITED 用的多,统计数据又没有离线库可以用的时候,可以降低到这个隔离级别避免锁表影响线上业务
fkdog
2021-06-01 20:03:03 +08:00
mysql 默认是 RR 级别。
对于读多得应用降一级成 RC 也是可以得。
RU 应该没人用吧。。?
qiyue0726
2021-06-01 22:23:40 +08:00
不是说 mysql 的可重复读也可以达到可串行化的效果吗
ericls
2021-06-01 22:55:13 +08:00
只用过 read committed 场景不同
Leviathann
2021-06-01 23:30:38 +08:00
@qiyue0726 嗯 加写锁的话可以突破快照的镜像
chenshun00
2021-06-02 09:04:53 +08:00
默认用的是 rc
symons
2021-06-03 17:02:09 +08:00
从我之前的工作经验来看,没遇见过有需要调整隔离级别的情况,更多的是从缓存上做文章,区分主库,从库,离线库这样子。所以很奇怪,但是从存在即正确的角度来看,也想不出来场景。
另外现在面试的时候,大多数都会问数据库的四种隔离级别,如果其他三种使用频率很低的话,问完了又有什么用呢,在在日常工作中根本不用用到,在规模较大的公司有专门的 DBA 来管理数据库,研发是碰不到数据库资源的。
我把问题抛出来,如果有人遇见了这个问题,请不吝赐教。
quiet1991
2021-06-03 17:31:38 +08:00
其实感觉其他三种只是为了理论完整以及特殊情况下而搞出来的, [业务系统] 本身就是 [强事务] 系统,如果是 [统计、报表、OLAP 之类] 的需求,本身就不需要事务,那就没必要用事务。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/780679

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX