admin 管理员组

文章数量: 1184232

【MySQL】批量检查表并进行repair,optimize

以下是shell的参考代码:

#!/bin/bashhost_name=192.168.0.123
user_name=xiaomo
user_pwd=my_pwd 
database=my_db_name
need_optmize_table=true
tables=$(mysql -h$host_name -u$user_name -p$user_pwd $database -A -Bse "show tables")for table_name in $tables
docheck_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" ]thenecho "It's no need to repair table $table_name"elseecho $(mysql -h$host_name -u$user_name -p$user_pwd $database -A -Bse "repair table $table_name")fi# 优化表,可提高性能if [ $need_optmize_table = true ]thenecho $(mysql -h$host_name -u$user_name -p$user_pwd $database -A -Bse "optimize table $table_name")fi
done

也可以使用mysqlcheck命令,此方法可以在检查表并自动修复损坏的表,不过该过程比较耗时。

本文标签: MySQL批量检查表并进行repair optimize