【发布时间】:2010-12-24 00:22:18
【问题描述】:
尝试从表中删除行时,我不断收到这些错误。这里的特殊情况是我可能同时运行 5 个进程。
该表本身是一个包含约 450 万行的 Innodb 表。我的 WHERE 子句中使用的列没有索引。其他索引按预期工作。
这是在事务中完成的,首先我删除记录,然后插入替换记录,并且只有在插入所有记录时才提交事务。
错误信息:
查询错误:超过锁定等待超时;尝试在执行 DELETE FROM tablename WHERE column=value 时重新启动事务
在此处为引用的列创建索引会有所帮助吗?我应该明确锁定行吗?
我在#64653 中找到了一些有问题的额外信息,但我认为它不能完全涵盖我的情况。
确定是 DELETE 语句导致了错误,还是查询中的其他语句? DELETE 语句是第一个语句,因此看起来合乎逻辑,但我不确定。
【问题讨论】:
标签: mysql locking delete-row