今天我一直在研究一些MySQL性能问题。我使用EXPLAIN查找表扫描并通过创建索引修复了一些问题。
我的阅读因为超快。
但从那时起,更新查询就会出现问题。当我重新启动Mysql时,前几个插入或更新工作正常。之后,更新查询在60秒后开始显示错误“超出锁定等待超时;尝试重新启动事务”。
Mysql是否在每次插入/更新时都重新创建了大型索引?我该如何解决这个问题?
答案 0 :(得分:1)
是的,MySQL会在每次更新时重新创建索引。你需要找到最佳位置。仅将索引放在将在WHERE
条件(或加入ON
条件)上使用的键上。
如果您为所有内容编制索引,则更新速度会太慢。如果你没有索引,你的读数会太慢。
如果在将索引缩小到您所需的范围后仍然存在性能问题,则应该重新评估数据结构。