何时会选择语句而不进行更新导致锁定?

时间:2009-05-29 12:47:59

标签: mysql select locking

我正在使用MySQL,

我有时通过运行'show processlist'

看到一个状态为“已锁定”的select语句

但在本地测试之后,我无法再次重现“锁定”状态。

3 个答案:

答案 0 :(得分:1)

这可能取决于发生了什么。我不是mySQL专家,但在SQL Server中,各种锁定级别控制何时可以读取和写入数据。例如,在生产中,您选择的stateemnt可能希望读取正在更新的记录。它必须等到更新完成。反之亦然 - 更新可能必须等待读取完成。

使用默认锁定级别进行混乱是很危险的。而且由于开发环境没有那么多的流量,你可能没有看到那种争用。

答案 1 :(得分:1)

如果再次发现,请查看是否可以查看是否正在对其中一个表进行更新,而选择是引用的。

我对mysql没有任何期待,但听起来好像另一个用户正在试图读取它时对表/字段进行锁定。

答案 2 :(得分:0)

我也不是MySQL专家,但锁定行为在很大程度上取决于隔离级别/事务隔离。我建议在MySQL文档中搜索这些术语。