V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
delpo
V2EX  ›  数据库

关于数据库读锁写锁的疑惑

  •  
  •   delpo · 2020-04-16 17:02:26 +08:00 · 996 次点击
    这是一个创建于 1667 天前的主题,其中的信息可能已经有所发展或是发生改变。
    今天在写 sql 的时候,突然发现,在一个事务内,可以对同一个目标同时加读锁和写锁
    类似于下面的 sql:

    begin;
    select ... lock in share mode;
    select ... for update;

    这个事务不会被阻塞,查看 information_schema.INNODB_TRX 表,发现 trx_rows_locked 属性值是数据行数的两倍.
    不知道是不是我理解的有问题,对同一行或同一张表,可以同时加 x 锁和 s 锁吗?
    1 条回复    2020-04-16 17:23:21 +08:00
    leviathan0992
        1
    leviathan0992  
       2020-04-16 17:23:21 +08:00
    SQL 执行也是串行的, 在一个事务里并不是并行的啊
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2828 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 02:20 · PVG 10:20 · LAX 18:20 · JFK 21:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.