/usr/local/mysql/bin/mysqlcheck -Aao --auto-repair -u root -p
| 參數 | 含義 |
|---|---|
-A, --all-databases | 檢查所有資料庫 |
-a, --analyze | 分析表(更新索引統計資訊) |
-o, --optimize | 優化表(整理碎片、重建索引) |
--auto-repair | 發現損壞自動修復 |
vi /opt/shell/mysql_opt.sh
#!/bin/bash
/usr/local/mysql/bin/mysqlcheck -Aao --auto-repair -u root -p'your_password'
記得 chmod +x /opt/shell/mysql_opt.sh。
crontab -e
# 每天凌晨 2 點執行
0 2 * * * /opt/shell/mysql_opt.sh >> /var/log/mysql_opt.log 2>&1
原文 * * */1 * * 寫法有誤(每分鐘執行),已修正為每日一次。
pt-online-schema-change 或 OPTIMIZE TABLE 分批處理。logrotate 定期清理 mysql_opt.log。