大家在使用 MySQL 的时候,使用过除 REPEATABLE READ 之外的级别嘛? - V2EX
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 2808 次点击
    这是一个创建于 1660 天前的主题,其中的信息可能已经有所发展或是发生改变。

    既然 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     Solana     2974 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 21ms UTC 13:20 PVG 21:20 LAX 05:20 JFK 08:20
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86