2010-08-02 40 views
4

我注意到有些查询突然间运行缓慢。在他们运行EXPLAIN之后,我意识到他们没有使用我创建的索引。MySQL索引自动禁用 - 为什么?

我使用SHOW INDEXES进一步观察,发现除表格上的主键之外,所有的都被禁用。我敢肯定,我没有手动禁用索引。

我手动启用索引使用ALTER TABLE表ENABLE KEYS再次正常。

他们怎么会在第一时间被禁用?在什么情况下索引会自动禁用?

回答

6

我非常确定转储文件包含语句以临时禁用索引以加快插入速度。如果有人从转储中恢复数据并且恢复失败,那么索引将保持禁用状态。