MySQL刪除資料時並不會釋放出磁碟空間的情形下,當刪除很多資料時這種多餘的空間會很多,可能會造成資料的錯誤,我們可以用 OPTIMIZE TABLE 來最佳化資料表,但如果需要最佳化的資料表很多,我們必須寫個 Shell Script 來達到一次全部最佳化。當然也可以使用 mysqlcheck 這個工具。 而且 mysqlcheck 這個工具可以讓我們在不關閉 MySQL 服務的情形下,要對資料庫做最佳化。 用法如下: mysqlcheck [options] 資料庫名稱 [資料表名稱] mysqlcheck [options] --databases 資料庫名稱1 [資料庫名稱2 資料庫名稱3...] mysqlcheck [options] --all-databases options部分舉一些常用的: - a = Analyse given tables. - c = Check table for errors - o = Optimise table - r = Can fix almost anything except unique keys that aren't unique - u = The MySQL username to use when connecting to the server 例:mysqlcheck - a - c - o - r --all-databases 如果需要定期自動做資料庫最佳化,寫個 Shell Script 並將最佳化結果自動 Email 到管理者信箱,再用 cron 自動於特定時間執行。寫入 Shell Script 自動執行的話必須要再加上 password 的 option,畢竟讓伺服器在三更半夜停下來等管理者輸入密碼是很奇怪的。 -- password = The password to use when connecting to the server 例:mysqlcheck - a - c - o - r --all-databases - u root -- password '管理者密碼'