先说一个技巧,先禁用索引、再载入数据,然后重新启用索引
alter table 表名 disable keys;
--load the data
alter table 表名 enable keys;
注意:这个技巧对唯一索引是无效的。
MYISAM引擎的表快速创建索引的这个技巧属于非官方的,有一定风险。
假设有一张表有较大量数据,按如下步骤:
1.创建一张结构完全一致的空表。
2.在新表中创建需要的索引
3.执行flush table with read lock,将所有表禁止访问
4.将新表和原表的.frm和.MYI文件互换(这个操作在之前一篇文章列写过)
5.解除禁止访问
6.执行repair table来重建表的索引(这个操作通过排序来构建所有索引,包括唯一索引)