包含 5000 万数据的表和添加索引需要太多时间
Posted
技术标签:
【中文标题】包含 5000 万数据的表和添加索引需要太多时间【英文标题】:Table with 50 million data and adding index takes too much time 【发布时间】:2017-02-05 06:13:30 【问题描述】:我正在处理大约 5000 万数据(2GB 大小)的表。我需要优化性能。因此,当我通过 phpmyadmin 面板在列上添加索引时,表被锁定并导致在该表的队列中保留所有查询,并最终导致重新启动/终止所有查询。 (是的,我忘了提到我是在生产中这样做的。我的错!)
当我做一些研究时,我发现了一些解决方案,比如创建重复表,但还有其他方法吗?
【问题讨论】:
【参考方案1】:您可以按照以下步骤操作,
-
创建临时表
在第一个表上创建触发器(对于
插入、更新、删除),以便将它们复制到临时
表
小批量,迁移数据完成后,将表重命名为新的
表,然后删除另一个表
但正如您所说,您是在生产环境中执行此操作,那么您需要在删除表并创建另一个表时考虑实时流量
【讨论】:
是的,我可以。我会再试一次 更好的是,使用pt-online-schema-change
;它会为您自动完成所有这些操作。以上是关于包含 5000 万数据的表和添加索引需要太多时间的主要内容,如果未能解决你的问题,请参考以下文章