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

2019-07-05 11:24:26 +08:00
 ruandao

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

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

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

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

1319 次点击
所在节点    问与答
5 条回复
momocraft
2019-07-05 11:56:15 +08:00
“卡”是加锁的意思吗?

DB 不需要加锁也可满足可重复读的要求,比如 snapshot
ruandao
2019-07-05 13:35:44 +08:00
@momocraft #1 不是, 我说的是, 数据库相同的行被卡住 (无法被其他客户端修改)
卡是指数据库事务,不是 client 的锁
yxjn
2019-07-05 13:51:45 +08:00
不会,rr 事物级别读不会触发行锁。
ruandao
2019-07-05 14:26:48 +08:00
@yxjn #3 如果不会的化, 卡 10s 数据被变更后,再去提交事务,是提交失败吗?
sandrew1945
2019-07-05 14:46:14 +08:00
不会

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

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

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

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

© 2021 V2EX