[英]How to optimize when adding key to a big table, with innodb as engine?
有几百万行的表。 我提交以下查询:
ALTER TABLE my_data ADD KEY `sex_birth` (`sex`, `birth`);
这需要38分钟44.53秒!
我如何优化它以使其运行更快?
您不能真正使此查询更快。 但是您可以肯定可以做一些事情,以使您的应用程序不会停机太长时间。
使用其他名称(例如my_data_alter
创建此表的副本。 在此表上运行alter。
您将需要运行的所有更新/插入/删除的日志,因为您已将副本带到更改完成的时间。 然后,您将必须对my_data_alter
运行这些查询。
如果表中发生的事务数量太大,那将是一个永无止境的循环。
最后,您只需要在一个查询中重命名两个表。
我知道这会有些棘手。 在非高峰时间做这种事情。
我建议您编写一些脚本来为您完成此工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.