0

有一个数百万行的表。我提交以下查询:

ALTER TABLE my_data ADD KEY `sex_birth` (`sex`, `birth`);

这需要 38 分 44.53 秒!

如何优化它以更快地运行?

4

1 回答 1

0

你不能真正让这个查询更快。但是你当然可以做一些事情,这样你的应用程序就不会停止太久。

使用其他名称创建此表的副本,例如my_data_alter. 在此表上运行 alter。

您将需要所有已运行的更新/插入/删除的日志,因为您将副本保存到更改完成的时间。然后你将不得不运行这些查询到my_data_alter.

如果表中发生的事务数量太大,这将是一个永无止境的循环。

最后,您只需在一个查询中重命名这两个表。

我知道这会非常棘手。在非高峰时间做这种事情。

我建议您编写一些脚本来为您完成这项工作..

于 2013-05-05T09:41:46.760 回答