ruandao
V2EX  ›  问与答

数据库事务 的可重复读的疑问

  •  1
     
  •   ruandao · Jul 5, 2019 · 1963 views
    This topic created in 2548 days ago, the information mentioned may be changed or developed.

    一个事务里面,有读的操作,然后 client 根据读的内容和程序运行时变量,去执行一些操作(费时 10s )

    再根据操作结果,决定是否变更数据,最后提交事务

    如果事务的级别是可重复读

    当这个事务,执行的时候,被读取的行,是否要被卡住 10s

    5 replies    2019-07-05 14:46:14 +08:00
    momocraft
        1
    momocraft  
       Jul 5, 2019
    “卡”是加锁的意思吗?

    DB 不需要加锁也可满足可重复读的要求,比如 snapshot
    ruandao
        2
    ruandao  
    OP
       Jul 5, 2019
    @momocraft #1 不是, 我说的是, 数据库相同的行被卡住 (无法被其他客户端修改)
    卡是指数据库事务,不是 client 的锁
    yxjn
        3
    yxjn  
       Jul 5, 2019
    不会,rr 事物级别读不会触发行锁。
    ruandao
        4
    ruandao  
    OP
       Jul 5, 2019
    @yxjn #3 如果不会的化, 卡 10s 数据被变更后,再去提交事务,是提交失败吗?
    sandrew1945
        5
    sandrew1945  
       Jul 5, 2019
    不会
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2634 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 12:40 · PVG 20:40 · LAX 05:40 · JFK 08:40
    ♥ Do have faith in what you're doing.