我們有一個非常龐大的Mysql表格,它是MyISAM。無論何時我們運行優化表命令,該表都會被鎖定並且性能會受到影響。該表不是隻讀的,因此創建臨時表並交換它們可能無法實現。我們也無法分割桌子。無需分區即可優化大型mysql表的表格
是否有任何其他方式/工具來實現優化表功能而不降低性能。任何建議都會有很大的幫助。
在此先感謝。
我們有一個非常龐大的Mysql表格,它是MyISAM。無論何時我們運行優化表命令,該表都會被鎖定並且性能會受到影響。該表不是隻讀的,因此創建臨時表並交換它們可能無法實現。我們也無法分割桌子。無需分區即可優化大型mysql表的表格
是否有任何其他方式/工具來實現優化表功能而不降低性能。任何建議都會有很大的幫助。
在此先感謝。
http://dev.mysql.com/doc/refman/5.5/en/optimize-table.html
對於InnoDB表,OPTIMIZE TABLE被映射到ALTER TABLE,這 重建表(...)
因此,我不希望在切換到任何改善InnoDB,正如Quassnoi可能提出的那樣。
根據定義,OPTIMIZE TABLE需要對錶中的一些獨家訪問,因此OPTIMIZE'ation在性能降低
然而,可能會有一些步驟來減少OPTIMIZE所花費的時間,這取決於你如何表是「巨大的」:
改進將是你不需要'優化'表。 –
如果您將「活動數據集」(即我的上述文章中的「非歸檔」表)保留得足夠小,那麼確實可能完全不需要優化它。 – RandomSeed
優化表命令鎖定表,它會降低性能。
你下載percona tool kit命令來優化表。
此命令在優化表中不會鎖定表。
使用下面的鏈接:
https://www.percona.com/doc/percona-toolkit/2.1/pt-online-schema-change.html
是否有一個原因,你在使用'MyISAM'? – Quassnoi
只是爲了在SELECT中有更好的速度。 –