快速創建MyISAM 索引
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013112321091159.jpg)
在現代版本的InnoDB 版本中有一個類似的技巧這依賴於InnoDB 的快速在線索引創建功能這個技巧是先刪除所有的非唯一索引然後增加新的列最後重新創建刪除掉的索引Percona Server 可以自動完成這些操作步驟
也可以使用像前面說的ALTER TABLE 的駭客方法來加速這個操作但需要多做一些工作並且承擔一定的風險這對從備份中載入數據是很有用的例如當已經知道所有數據都是有效的並且沒有必要做唯一性檢查時就可以這麼來操作
再次說明這是沒有文檔說明並且不受官方支持的技巧若使用的話需要自己承擔風險並且操作之前一定要先備份數據
下面是操作步驟
用需要的表結構創建一張表但是不包括索引
載入數據到表中以構建 MYD 文件
按照需要的結構創建另外一張空表這次要包含索引這會創建需要的 frm 和 MYI文件
獲取讀鎖並刷新表
重命名第二張表的 frm 和 MYI 文件讓MySQL 認為是第一張表的文件
釋放讀鎖
使用REPAIR TABLE 來重建表的索引該操作會通過排序來構建所有索引包括唯一索引
這個操作步驟對大表來說會快很多
返回目錄高性能MySQL
編輯推薦
ASPNET MVC 框架揭秘
Oracle索引技術
ASP NET開發培訓視頻教程
數據倉庫與數據挖掘培訓視頻教程
From:http://tw.wingwit.com/Article/program/MySQL/201311/29670.html