MySQL速度变慢,怎么办?【转载】

MYSQL 在运行一段时间后,速度变慢,其中一个原因是一段时间后,随着数据表中内容的改变,表的素引的统计数据(statistics)过期,使得优化器 (Optimizer)在执行查询(query)操作时不能提供最优查询策略。为此需要定期对数据表,尤其是经常执行insert,update, delete等数据操纵语句的数据表要定期运行"ANALYZE TABLE"命令更新表的统计信息(statistics)。编辑了一个小的bash script,放在linux的crontab中定期执行。

下面是bash script 和sql analyze table 的script.


------------------analyze_table.sh---------------------------
#!/bin/bash
MYSQL_DIR=/usr/local/mysql
USERNAME=root
PASSWORD=root
SOCKET="/tmp/mysql.sock"
DBNAMES="`$MYSQL_DIR/bin/mysql --user=$USERNAME --password=$PASSWORD --socket=$SOCKET --batch --skip-column-names -e "show databases"| sed 's/ /%/g'`"
for DB in $DBNAMES;do
echo "start analyze database:"$DB"......"
TABLENAMES="`$MYSQL_DIR/bin/mysql --user=$USERNAME --password=$PASSWORD --socket=$SOCKET --batch --skip-column-names --database=$DB -e "show tables"| sed 's/ /%/g'`"
for TABLE in $TABLENAMES; do
$MYSQL_DIR/bin/mysql --user=$USERNAME --password=$PASSWORD --socket=$SOCKET --batch --skip-column-names --database=$DB -e "analyze table $TABLE"
done
done
exit 0

 

转载于:https://www.cnblogs.com/babietongtianta/archive/2012/09/24/2699781.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值