本文實例講述了MySQL實現批量檢查表并進行repair與optimize的方法。分享給大家供大家參考,具體如下:
以下是shell的參考代碼:
#!/bin/bashhost_name=192.168.0.123user_name=xiaomouser_pwd=my_pwd database=my_db_nameneed_optmize_table=truetables=$(mysql -h$host_name -u$user_name -p$user_pwd $database -A -Bse "show tables")for table_name in $tablesdo check_result=$(mysql -h$host_name -u$user_name -p$user_pwd $database -A -Bse "check table $table_name" | awk '{ print $4 }') if [ "$check_result" = "OK" ] then echo "It's no need to repair table $table_name" else echo $(mysql -h$host_name -u$user_name -p$user_pwd $database -A -Bse "repair table $table_name") fi # 優化表,可提高性能 if [ $need_optmize_table = true ] then echo $(mysql -h$host_name -u$user_name -p$user_pwd $database -A -Bse "optimize table $table_name") fidone
也可以使用mysqlcheck命令,此方法可以在檢查表并自動修復損壞的表,不過該過程比較耗時。