myisamchk [options] tbl_name ...
# 檢查目錄下所有表
myisamchk *.MYI
# 推薦:快速靜默檢查所有 MyISAM 表
myisamchk --silent --fast /path/to/datadir/*/*.MYI
執行時確保無其他程式使用該表。記憶體用 -O sort=16M 通常足夠,修復需雙倍硬碟空間。
--debug/-#:輸出除錯日誌--silent/-s:靜默模式,僅錯誤輸出--wait/-w:表被鎖定時等待而非報錯--var_name=value:設定變數(key_buffer_size、sort_buffer_size 建議設為可用記憶體 25% 以加速修復)--check/-c:檢查錯誤(預設)--check-only-changed/-C:僅檢查上次檢查後有變更的表--extend-check/-e:詳細檢查,多索引時較慢--fast/-F:僅檢查未正確關閉的表--force/-f:發現錯誤自動修復--information/-i:輸出統計資訊--medium-check/-m:較快檢查,發現 99.99% 錯誤--update-state/-U:記錄檢查時間與崩潰狀態至 .MYI--read-only/-T:不標記已檢查,適合檢查被其他程式使用的表--backup/-B:備份 .MYD 為 file_name-time.BAK--correct-checksum:修正校驗和--data-file-length/-D:設定資料檔最大長度--extend-check/-e:嘗試恢復每行,可能產生大量垃圾行,慎用--force/-f:覆蓋舊暫存檔--keys-used/-k:位元值指定更新哪些索引--parallel-recover/-p:多執行緒平行建立所有鍵--quick/-q:不修改資料檔,快速修復--recover/-r:修復幾乎所有問題(首選)--safe-recover/-o:舊式恢復,較慢但能處理 -r 無法處理的情況,硬碟佔用較少--sort-recover/-n:強制透過排序解析鍵值--analyze/-a:分析鍵值分布,優化聯結順序--sort-index/-S:索引樹塊由高到低排序,加快搜尋--set-auto-increment/-A:強制自增值起始點--description/-d:輸出表描述資訊myisamchk -r -q tbl_name(快速恢復模式),失敗進階段 3。myisamchk -r -q。亦可用 REPAIR TABLE tbl_name USE_FRM 自動完成全流程。