MySQL-InnoDb锁定智能吗?

时间:2011-03-13 06:51:51

标签: mysql

以下查询

SELECT * FROM (SELECT * FROM Users) WHERE Id = 1

SELECT * FROM Users Where Id = 1

是等价的。但根据文档,在Serializable模式下,所有选择都是在LOCK IN SHARED MODE中进行的。这是否意味着在第一个示例中整个Users表将以共享模式锁定?

1 个答案:

答案 0 :(得分:1)

我认为你误解了共享模式锁的概念。来自MySQL documentation

  

SELECT ... LOCK IN SHARE MODE设置a   读取的行上的共享模式锁定。一个   共享模式锁启用其他   会话来读取行而不是   修改它们。

因此可以进行并发读取。只有修改才会延迟,直到您的查询被执行。