mysqlcheck 是 MySQL 官方提供的資料表維護工具,支援 MyISAM、InnoDB 等引擎,可一次對所有資料庫執行檢查、修復、優化、分析。
| 指令 | 說明 |
|---|---|
mysqlcheck -A -o -r -p | 檢查(-c預設)、優化(-o)、修復(-r) 所有資料庫 (-A),需輸入密碼 (-p) |
mysqlcheck -A -o -r db_name -p | 僅處理指定資料庫 |
mysqlcheck -A -a -p | 分析所有資料庫 (-a),更新索引統計資訊 |
mysqlcheck -A -c -p | 僅檢查錯誤,不修復 |
# mysqlcheck -A -o -r -p
Enter password:
guestbook.simpgb_avatars OK
guestbook.simpgb_bad_Words OK
guestbook.simpgb_banlist OK
guestbook.simpgb_data OK
...
crontab 定期執行(如每週日凌晨低峰期)。--auto-repair 讓工具自動修復發現的損壞表。mysqlcheck 對 InnoDB 主要執行 ANALYZE 與 OPTIMIZE(重建表)。若 mysqlcheck 無法修復嚴重損壞的 MyISAM 表,需停止 MySQL 服務,使用 myisamchk -r 離線修復,並配合鎖定協議防止資料不一致。