文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
Man Pages (TGZ) - 258.5Kb
Man Pages (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 參考手冊  /  ...  /  設定 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