V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
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
symons
V2EX  ›  MySQL

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

  •  
  •   symons ·
    symons1992 · 2021-06-01 19:09:30 +08:00 · 2218 次点击
    这是一个创建于 1276 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    • READ UNCOMMITED
    • READ COMMITTED
    • SERIALIZABLE

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

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

    对于 READ UNCOMMITED 的话,读非常多,写非常少这种场景可能会用到,不过如果这种场景,在 MySQL 前加一个缓存不是也能解决吗?
    对于 SERIALIZABLE 这个级别,真的比较难想象,哪里会用到,太严格了
    quiet1991
        3
    quiet1991  
       2021-06-01 19:28:57 +08:00   ❤️ 1
    确实没碰到用其他 3 种隔离级别的情况
    zjqzxc
        4
    zjqzxc  
       2021-06-01 19:34:47 +08:00
    READ UNCOMMITED 用的多,统计数据又没有离线库可以用的时候,可以降低到这个隔离级别避免锁表影响线上业务
    fkdog
        5
    fkdog  
       2021-06-01 20:03:03 +08:00
    mysql 默认是 RR 级别。
    对于读多得应用降一级成 RC 也是可以得。
    RU 应该没人用吧。。?
    qiyue0726
        6
    qiyue0726  
       2021-06-01 22:23:40 +08:00
    不是说 mysql 的可重复读也可以达到可串行化的效果吗
    ericls
        7
    ericls  
       2021-06-01 22:55:13 +08:00 via iPhone
    只用过 read committed 场景不同
    Leviathann
        8
    Leviathann  
       2021-06-01 23:30:38 +08:00 via iPhone
    @qiyue0726 嗯 加写锁的话可以突破快照的镜像
    chenshun00
        9
    chenshun00  
       2021-06-02 09:04:53 +08:00
    默认用的是 rc
    symons
        10
    symons  
    OP
       2021-06-03 17:02:09 +08:00
    从我之前的工作经验来看,没遇见过有需要调整隔离级别的情况,更多的是从缓存上做文章,区分主库,从库,离线库这样子。所以很奇怪,但是从存在即正确的角度来看,也想不出来场景。
    另外现在面试的时候,大多数都会问数据库的四种隔离级别,如果其他三种使用频率很低的话,问完了又有什么用呢,在在日常工作中根本不用用到,在规模较大的公司有专门的 DBA 来管理数据库,研发是碰不到数据库资源的。
    我把问题抛出来,如果有人遇见了这个问题,请不吝赐教。
    quiet1991
        11
    quiet1991  
       2021-06-03 17:31:38 +08:00
    其实感觉其他三种只是为了理论完整以及特殊情况下而搞出来的, [业务系统] 本身就是 [强事务] 系统,如果是 [统计、报表、OLAP 之类] 的需求,本身就不需要事务,那就没必要用事务。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3446 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 04:52 · PVG 12:52 · LAX 20:52 · JFK 23:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.