有一张数百万行的表格。 我提交以下查询:
ALTER TABLE my_data ADD KEY `sex_birth` (`sex`, `birth`);
这需要38分44.53秒!
如何优化此功能以加快运行速度?
答案 0 :(得分:0)
您无法更快地完成此查询。但是你肯定可以做一些事情,这样你的应用程序就不会长时间停机。
使用其他名称创建此表的副本,例如my_data_alter
。在此表上运行alter。
您将需要已运行的所有更新/插入/删除的日志,因为您将副本带到完成alter的时间。然后,您必须将这些查询运行到my_data_alter
。
如果表中发生的交易数量太大,那将是一种永无止境的循环。
最后,您只需在一个查询中重命名这两个表。
我知道这会非常棘手。在非高峰时间做这种事情。
我建议你写一些为你完成这项工作的脚本..