Mysql
MySQL 8 - 優化所有表 + 索引
我在幾個數據庫(MySQL 8)中有一堆表(InnoDB),我每天執行垃圾收集腳本,刪除不再需要的陳舊記錄。所有表都有索引。
每週優化所有表以提高性能是否有意義/是否有益?如果是這樣,是否有好的命令可以執行,這樣做?
我試著做
sudo mysqlcheck -o --all-databases
但收到以下錯誤消息:
note : Table does not support optimize, doing recreate + analyze instead status : OK
不要打擾。InnoDB 主要照顧自己。
OPTIMIZE
暫時擠出一些浪費的空間,但隨著插入/等的發生,會出現新的浪費。的性能優勢OPTIMIZE
幾乎為零。
這些消息對於 InnoDB 來說是正常的。您可以繼續這樣做。
InnoDB 儲存引擎
OPTIMIZE TABLE mydb.mytable;
是這樣執行的ALTER TABLE mydb.mytable ENGINE=InnoDB; ANALYZE TABLE mydb.mytable;
這些年來,我已經提到了這一點:
Sep 27, 2015
:如何在 MySQL 中對錶進行碎片整理?Jun 24, 2015
:改變表後呼叫優化表的指南?Feb 27, 2013
: mysql中的optimize table和analyze table有什麼區別Aug 04, 2011
:優化 InnoDB 預設設置我建議每天或每週進行分析
sudo mysqlcheck --analyze --all-databases
然後,每月或每季度進行一次優化。