数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

高性能MySQL:快速创建MyISAM索引


发布日期:2018年01月12日
 
高性能MySQL:快速创建MyISAM索引

快速创建MyISAM 索引

在现代版本的InnoDB 版本中有一个类似的技巧这依赖于InnoDB 的快速在线索引创建功能这个技巧是先删除所有的非唯一索引然后增加新的列最后重新创建删除掉的索引Percona Server 可以自动完成这些操作步骤

也可以使用像前面说的ALTER TABLE 的骇客方法来加速这个操作但需要多做一些工作并且承担一定的风险这对从备份中载入数据是很有用的例如当已经知道所有数据都是有效的并且没有必要做唯一性检查时就可以这么来操作

再次说明这是没有文档说明并且不受官方支持的技巧若使用的话需要自己承担风险并且操作之前一定要先备份数据

下面是操作步骤

用需要的表结构创建一张表但是不包括索引

载入数据到表中以构建 MYD 文件

按照需要的结构创建另外一张空表这次要包含索引这会创建需要的 frm 和 MYI文件

获取读锁并刷新表

重命名第二张表的 frm 和 MYI 文件让MySQL 认为是第一张表的文件

释放读锁

使用REPAIR TABLE 来重建表的索引该操作会通过排序来构建所有索引包括唯一索引

这个操作步骤对大表来说会快很多

返回目录高性能MySQL

编辑推荐

ASPNET MVC 框架揭秘

Oracle索引技术

ASP NET开发培训视频教程

数据仓库与数据挖掘培训视频教程

上一篇:高性能MySQL:只修改.frm 文件

下一篇:高性能MySQL:第四章总结