V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
helloworld12
V2EX  ›  问与答

数据库的 REPEATABLE_READ 会不会导致死锁? 为什么

  •  
  •   helloworld12 · Nov 4, 2018 · 2804 views
    This topic created in 2745 days ago, the information mentioned may be changed or developed.

    脏读、幻读、不可重复读 and 乐观锁、悲观锁 and 事务五种隔离级别

    里面讲到:

    ( 4 ) REPEATABLE_READ
      可以防止脏读、不可重复读,但会出幻读(锁定所读取的所有行)。
    

    那么,如果一个事务 先读 A 行,然后修改 B 行, 另一个事务先读 B 行,然后修改 A 行

    这个会不会导致死锁, 为什么,还是说这篇文章介绍的有问题

    谢谢

    3 replies    2018-11-04 15:04:07 +08:00
    Kahnn
        1
    Kahnn  
       Nov 4, 2018 via Android
    这是 SQL 标准的理论定义,不同数据库不同引擎的实现都会不一样,想知道结果就来两个事务试一下就知道了
    fmumu
        2
    fmumu  
       Nov 4, 2018 via Android
    读不加锁吧
    helloworld12
        3
    helloworld12  
    OP
       Nov 4, 2018
    @fmumu #2 读不加锁,会导致不可重复读
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5752 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 43ms · UTC 06:51 · PVG 14:51 · LAX 23:51 · JFK 02:51
    ♥ Do have faith in what you're doing.