【发布时间】:2018-04-01 12:23:14
【问题描述】:
我正在尝试在大型 MySQL 表(每个表 50-100GB)上创建索引。
我注意到,当启动 ALTER 语句以创建新索引时,MySQL 会为该表创建几个临时文件,复制整个表数据(.MYD 文件)和索引(.MYI 文件) 到新文件,可能会相应地修改它们,最后将它们与原始文件交换。这个过程需要很长时间,因为它需要将大量数据复制到这些临时文件中。
假设我不关心锁定表/停机时间/任何其他与生产相关的限制,有没有更快的方法?有没有办法告诉 MySQL,不要创建那些大的临时文件,而是尽可能快地创建索引?
【问题讨论】:
-
看看
ALGORITHM=INPLACE选项
标签: mysql performance sqlperformance database-indexes