我正在使用MySQL,
我有时通过运行'show processlist'
看到一个状态为“已锁定”的select语句但在本地测试之后,我无法再次重现“锁定”状态。
答案 0 :(得分:1)
这可能取决于发生了什么。我不是mySQL专家,但在SQL Server中,各种锁定级别控制何时可以读取和写入数据。例如,在生产中,您选择的stateemnt可能希望读取正在更新的记录。它必须等到更新完成。反之亦然 - 更新可能必须等待读取完成。
使用默认锁定级别进行混乱是很危险的。而且由于开发环境没有那么多的流量,你可能没有看到那种争用。
答案 1 :(得分:1)
如果再次发现,请查看是否可以查看是否正在对其中一个表进行更新,而选择是引用的。
我对mysql没有任何期待,但听起来好像另一个用户正在试图读取它时对表/字段进行锁定。
答案 2 :(得分:0)
我也不是MySQL专家,但锁定行为在很大程度上取决于隔离级别/事务隔离。我建议在MySQL文档中搜索这些术语。