加快ALTER TABLE操作的速度
2014-11-24 17:10
218 查看
1. MySQL 执行大部分修改表结构操作的方法是用新的结构创建一个空表,从旧表中查出所有数据插入新表,然后删除旧表,大部分ALTER TABLE操作将导致MySQL服务中断。
对常见的场景,能使用的技巧只有两种:一种是先在一台不提供服务的机器上执行ALTER TABLE操作,然后和提供服务的主库进行切换;另外一种技巧是‘’影子拷贝‘,是用要求的表结构创建一张和源表无关的新表,然后通过重命名和删表操作交换两张表。
2. 快速创建MyISAM索引
为了高效地载入数据到MyISAM表中,有一个常用的技巧是先禁用索引,载入数据,然后重新启用索引:
mysql> ALTER TABLE test.load_data DISABLE KEYS;
---load the data
mysql> ALTER TABLE test.load_data ENABLE KEYS;
但此方法对唯一索引无效,因为DISABLE KEYS只对非唯一索引有效。
在现代版本的InnoDB中,有一个类似的技巧,这依赖于InnoDB的快速在线索引创建功能:先删除所有的非唯一索引,然后增加新的列,最后重新创建删除掉的索引。
对常见的场景,能使用的技巧只有两种:一种是先在一台不提供服务的机器上执行ALTER TABLE操作,然后和提供服务的主库进行切换;另外一种技巧是‘’影子拷贝‘,是用要求的表结构创建一张和源表无关的新表,然后通过重命名和删表操作交换两张表。
2. 快速创建MyISAM索引
为了高效地载入数据到MyISAM表中,有一个常用的技巧是先禁用索引,载入数据,然后重新启用索引:
mysql> ALTER TABLE test.load_data DISABLE KEYS;
---load the data
mysql> ALTER TABLE test.load_data ENABLE KEYS;
但此方法对唯一索引无效,因为DISABLE KEYS只对非唯一索引有效。
在现代版本的InnoDB中,有一个类似的技巧,这依赖于InnoDB的快速在线索引创建功能:先删除所有的非唯一索引,然后增加新的列,最后重新创建删除掉的索引。
相关文章推荐
- MySQL加快ALTER TABLE操作的速度
- 高性能MYsql读书笔记-加快alter table操作的速度
- mysql(一)加快ALTER TABLE操作的速度
- 加快ALTER TABLE 操作速度
- 加快alter table 操作速度
- Win10预览版提供了完全桌面化、窗口化的操作方式 加快桌面应用的启动速度
- 使用内存映射文件加快文件操作速度
- 用Redis作为缓存服务器,加快数据库操作速度
- Python Numpy的一些操作可以极大的加快你的code运行速度
- 加快软盘操作速度的汇编程序源代码
- 高性能mysql笔记(五)加快alter table的速度
- 运用内存映射文件加快文件操作速度
- Virtual Server 2005 下加快在 SCSI 磁盘上安装操作系统的速度
- 用 ASP.NET 2.0 改进的 ViewState 加快网站速度
- 开启IE多线程 加快下载速度
- 用ASP.NET 2.0改进的ViewState加快网站速度
- 加快eclipse启动速度
- [CB]加快BCB编译速度
- 用 ASP.NET 2.0 改进的 ViewState 加快网站速度(转)
- 发现CSDN Blog保存速度加快了