1
我有一個包含1,5M記錄的InnoDB表。在此表中的3列上應用索引以更快地搜索此表。更新新插入數據的索引
我即將新增一批400k數據到此表中。問題是 - 如何優化這個表格?我是否應該刪除當前索引並重新運行用於創建索引的命令(這樣整個表將被編入索引),還是有一條可以「擴展索引效果」的命令也可以用於新數據?
謝謝你們,我在這方面經驗不多。
我有一個包含1,5M記錄的InnoDB表。在此表中的3列上應用索引以更快地搜索此表。更新新插入數據的索引
我即將新增一批400k數據到此表中。問題是 - 如何優化這個表格?我是否應該刪除當前索引並重新運行用於創建索引的命令(這樣整個表將被編入索引),還是有一條可以「擴展索引效果」的命令也可以用於新數據?
謝謝你們,我在這方面經驗不多。
當您向表中添加行時,索引將自動更新。
如果你想要最好的性能,在插入前右行的,發出這些命令:
SET unique_checks=0;
SET foreign_key_checks=0;
SET autocommit=0;
這些命令加快速度,因爲他們砍掉MySQL有每個插入做的工作。看這裏。 http://dev.mysql.com/doc/refman/5.6/en/optimizing-innodb-bulk-data-loading.html
然後,你做你的插入,使用此命令,每100行左右:
COMMIT;
然後,當你與你的插入完成後,發出這些命令:
SET autocommit=1;
SET foreign_key_checks=1;
SET unique_checks=1;
最後,在您的插入工作結束時,您可能會考慮發出命令
OPTIMIZE TABLE yourTableName
這將重新組織表和索引。請注意,在重組操作期間,表格將暫時無法閱讀。