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

2020-04-16 17:02:26 +08:00
 delpo
今天在写 sql 的时候,突然发现,在一个事务内,可以对同一个目标同时加读锁和写锁
类似于下面的 sql:

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

这个事务不会被阻塞,查看 information_schema.INNODB_TRX 表,发现 trx_rows_locked 属性值是数据行数的两倍.
不知道是不是我理解的有问题,对同一行或同一张表,可以同时加 x 锁和 s 锁吗?
997 次点击
所在节点    数据库
1 条回复
leviathan0992
2020-04-16 17:23:21 +08:00
SQL 执行也是串行的, 在一个事务里并不是并行的啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/663142

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX