symons
V2EX  ›  MySQL

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

By symons at 2021 年 6 月 1 日 · 3495 次点击

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

  • READ UNCOMMITED
  • READ COMMITTED
  • SERIALIZABLE

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

11 条回复  •  2021-06-03 17:31:38 +08:00
aircjm
   1
aircjm  
   2021 年 6 月 1 日 via Android
这个看你使用场景啊 有的比较严苛的场景会使用更高的隔离级别
symons
   2
symons  
OP
   2021 年 6 月 1 日
银行 /钱包的场景应该是比较严苛的,但是也不用最高级别( SERIALIZABLE ),用 REPEATABLE READ 完全可以,很难想象出来(没见过) READ UNCOMMITED 和 SERIALIZABLE 这俩级别在哪里会用到

对于 READ UNCOMMITED 的话,读非常多,写非常少这种场景可能会用到,不过如果这种场景,在 MySQL 前加一个缓存不是也能解决吗?
对于 SERIALIZABLE 这个级别,真的比较难想象,哪里会用到,太严格了
quiet1991
   3
quiet1991  
   2021 年 6 月 1 日   ❤️ 1
确实没碰到用其他 3 种隔离级别的情况
zjqzxc
   4
zjqzxc  
   2021 年 6 月 1 日
READ UNCOMMITED 用的多,统计数据又没有离线库可以用的时候,可以降低到这个隔离级别避免锁表影响线上业务
fkdog
   5
fkdog  
   2021 年 6 月 1 日
mysql 默认是 RR 级别。
对于读多得应用降一级成 RC 也是可以得。
RU 应该没人用吧。。?
Steve08
   6
Steve08  
   2021 年 6 月 1 日
不是说 mysql 的可重复读也可以达到可串行化的效果吗
ericls
   7
ericls  
   2021 年 6 月 1 日 via iPhone
只用过 read committed 场景不同
Leviathann
   8
Leviathann  
   2021 年 6 月 1 日 via iPhone
@qiyue0726 嗯 加写锁的话可以突破快照的镜像
chenshun00
   9
chenshun00  
   2021 年 6 月 2 日
默认用的是 rc
symons
   10
symons  
OP
   2021 年 6 月 3 日
从我之前的工作经验来看,没遇见过有需要调整隔离级别的情况,更多的是从缓存上做文章,区分主库,从库,离线库这样子。所以很奇怪,但是从存在即正确的角度来看,也想不出来场景。
另外现在面试的时候,大多数都会问数据库的四种隔离级别,如果其他三种使用频率很低的话,问完了又有什么用呢,在在日常工作中根本不用用到,在规模较大的公司有专门的 DBA 来管理数据库,研发是碰不到数据库资源的。
我把问题抛出来,如果有人遇见了这个问题,请不吝赐教。
quiet1991
   11
quiet1991  
   2021 年 6 月 3 日
其实感觉其他三种只是为了理论完整以及特殊情况下而搞出来的, [业务系统] 本身就是 [强事务] 系统,如果是 [统计、报表、OLAP 之类] 的需求,本身就不需要事务,那就没必要用事务。
› MySQL 5.5 Community Server
› MySQL 5.6 Community Server
› Percona Configuration Wizard
› XtraBackup 搭建主从复制
Great Sites on MySQL
› Percona
› MySQL Performance Blog
› Severalnines
推荐管理工具
› Sequel Pro
› phpMyAdmin
推荐书目
› MySQL Cookbook
MySQL 相关项目
› MariaDB
› Drizzle
参考文档
› http://mysql-python.sourceforge.net/MySQLdb.html
© 2026 V2EX · 43ms · 3.9.8.5