我有几个这样的 MyISAM 表,它们有数十亿行和 8 个非常复杂的索引。
当我每天一次导入数据时,我禁用密钥,从文件导入,然后启用密钥。这是相当快的。
我刚刚写了一个脚本来删除某些记录,大约 1%,每周执行一次。我在没有禁用键的情况下运行它,因为我认为它需要索引来查找我要删除的记录。
我的问题是它在最后 45 分钟内卡住preparing
了第DELETE
一个。我不认为它甚至可以在一周内删除它们!当然,这需要很快,因为我必须每天插入更多行。
ALTER TABLE... DISABLE KEYS
所以我的问题是:在这种情况下会更有效DELETE
吗?找到要删除的记录需要更长的时间,但它应该更快地删除它们......?(我不知道。)
我会自己测试它,但这些表不是我可以轻松测试不同想法的沙盒。