mysql 里,如果没有用事务直接 select 会脏读吗?

2021-03-18 18:13:12 +08:00
 leavan

听说普通的 select 不对数据加锁,那岂不是很容易读到某些事务未提交的数据,应该全用 select ... for update ?

1804 次点击
所在节点    数据库
22 条回复
hehe12980
2021-03-19 16:53:57 +08:00
@pedia 关掉自动 commit, 然后开两个 session 就能试出来,没那么麻烦,X 锁禁止当前读 也就是你的读 得加锁了,那确实写的时候会读被阻塞了,普通的快照读不会被影响到
pedia
2021-03-19 17:01:25 +08:00
@hehe12980 DDL 的升降锁过程手动启 session 是很难能卡在临界点的, 8.0 的 DDL 是 atomic DDL, prepare 和 commit 阶段都是阻塞读写的,包括你说的快照读.

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

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

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

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

© 2021 V2EX