文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (美國信紙) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  ...  /  設定 MyISAM 資料表維護排程

9.6.5 設定 MyISAM 資料表維護排程

定期執行資料表檢查是個好主意,而不是等到問題發生才檢查。檢查和修復 MyISAM 資料表的一種方法是使用 CHECK TABLEREPAIR TABLE 陳述式。請參閱 第 15.7.3 節,「資料表維護陳述式」

檢查資料表的另一種方法是使用 myisamchk。為了維護目的,您可以使用 myisamchk -s-s 選項(--silent 的簡寫)會導致 myisamchk 以靜音模式執行,僅在發生錯誤時才列印訊息。

啟用自動 MyISAM 資料表檢查也是個好主意。例如,每當機器在更新過程中重新啟動時,您通常需要在使用之前檢查每個可能受到影響的資料表。(這些是預期的損毀資料表。)若要讓伺服器自動檢查 MyISAM 資料表,請啟動伺服器並設定 myisam_recover_options 系統變數。請參閱 第 7.1.8 節,「伺服器系統變數」

您也應該在正常系統操作期間定期檢查資料表。例如,您可以使用 cron 工作每週檢查一次重要的資料表,在 crontab 檔案中使用類似這樣的行

35 0 * * 0 /path/to/myisamchk --fast --silent /path/to/datadir/*/*.MYI

這會列印出有關損毀資料表的資訊,以便您可以檢查並根據需要進行修復。

首先,每天晚上在過去 24 小時內更新的所有資料表上執行 myisamchk -s。當您發現問題不常發生時,可以將檢查頻率降低到每週一次左右。

通常,MySQL 資料表不需要太多維護。如果您對具有動態大小列的 MyISAM 資料表(具有 VARCHARBLOBTEXT 資料行的資料表)執行許多更新,或者有許多已刪除列的資料表,您可能需要不時對資料表進行重組/回收空間。您可以使用資料表上的 OPTIMIZE TABLE 來執行此操作。或者,如果您可以暫時停止 mysqld 伺服器,請變更位置到資料目錄,並在伺服器停止時使用此命令

$> myisamchk -r -s --sort-index --myisam_sort_buffer_size=16M */*.MYI