本文主要是介绍快速创建MyISAM索引,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
alter table table_name disable keys;
alter table table_name enable keys;
这个技巧可以发挥作用, 是因为构建索引的工作被延迟到数据完全载入以后,这个时候已经可以通过排序来构建索引了。
这样做会快很多,并且使得索引树的碎片更少、更紧凑
然而,这个办法对唯一索引无效,因为disable keys只对非唯一索引有效. MyISAM会在内存中构造唯一索引,并且为载入的每一行检查唯一性。一旦索引的大小超过了有效内存的大小,载入操作就会变得越来越慢.
下面是操作步骤:
- 用需要的表结构创建一张表,但是不 包括索引.
- 载入数据到表中以构建.myd文件
- 按照需要的结构创建另外一张空表,这次要包含索引。这会创建需要.frm和.myi文件
- 获取读锁并刷新表
- 重命名第二张表的.frm和.myi文件,让MySQL认为是第一张表的文件。
- 释放读锁
- 使用repair table 来重建表的索引。该操作会通过排序来构建所有索引,包括唯一索引
tip: 以上 操作都不是官方操作, 使用这些技巧前请注意备份!
这篇关于快速创建MyISAM索引的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!