MySQL“选择更新”行为

MySQL“选择更新”行为,第1张

MySQL“选择更新”行为

让我审视您的情况并解释这些锁的工作方式:

1箱

T1想要更新测试表中的某些行。此事务将IX锁放在所有表上,将X锁放在前5行上。

T2希望更新测试表中的某些行。此事务将IX(因为IX与IX兼容)锁定在所有表上,并尝试到前5行,但由于X与X不兼容而无法执行

所以我们很好。

2.1案例

T1想要更新测试表中的某些行。此事务将IX锁放在所有表上,将X锁放在前5行上。

T2希望从测试表中选择一些行。而且它不会放置任何锁(因为InnoDB提供了非锁定读取)

2.1案例

T1想要更新测试表中的某些行。此事务将IX锁放在所有表上,将X锁放在前5行上。

T2想要更新(选择更新)测试表中的某些行。将IS放在整个表上,并尝试在行上获取S锁,但由于X和S不兼容而失败。


还请始终注意隔离级别:不同的级别会导致不同的机制释放/获取锁

希望能帮助到你



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5022462.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-15
下一篇 2022-11-15

发表评论

登录后才能评论

评论列表(0条)

保存