Mysql

MySQL 8 - 優化所有表 + 索引

  • November 29, 2020

我在幾個數據庫(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;

這些年來,我已經提到了這一點:

我建議每天或每週進行分析

sudo mysqlcheck --analyze --all-databases

然後,每月或每季度進行一次優化。

引用自:https://dba.stackexchange.com/questions/280406