免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1631 | 回复: 0
打印 上一主题 下一主题

mysql日常维护优化脚本 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-06-21 11:31 |只看该作者 |倒序浏览

               
如果您已经删除了表的一大部分,或者如果您已经对含有可变长度行的表(含有VARCHAR,
                                BLOB或TEXT列的表)进行了很多更改,则应使用OPTIMIZE
                                TABLE。被删除的记录被保持在链接清单中,后续的INSERT操作会重新使用旧的记录位置。您可以使用OPTIMIZE
                                TABLE来重新利用未使用的空间,并整理数据文件的碎片。
                               
在多数的设置中,您根本不需要运行OPTIMIZE TABLE。即使您对可变长度的行进行了大量的更新,您也不需要经常运行,每周一次或每月一次即可,只对特定的表运行。
                               
OPTIMIZE TABLE只对MyISAM,
                                BDB和InnoDB表起作用。
对于InnoDB表,OPTIMIZE
                                TABLE被映射到ALTER TABLE上,这会重建表。重建操作能更新索引统计数据并释放成簇索引中的未使用的空间。
注意,在OPTIMIZE TABLE运行过程中,MySQL会锁定表。
                               
OPTIMIZE TABLE语句被写入到二进制日志中,除非使用了自选的NO_WRITE_TO_BINLOG关键词(或其别名LOCAL)。已经这么做了,因此,用于MySQL服务器的OPTIMIZE
                                TABLE命令的作用相当于一个复制主服务器,在默认情况下,这些命令将被复制到复制从属服务器中。
废话少说,脚本如下:
#!/bin/bash
#this program is used to optimize of innodb
# History:
#         2007/11/28        chentao        1.1
#---------------------------------------------------------------
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
time_log=/usr/local/crontab/optimize_time
sum=$#
if [ "$sum" -eq 0 ]
then
    echo "Error: no parameter chosed"
exit 1
fi
for i in $*;do
        echo "optimize database $i starting ..."
        tables=$(/usr/local/mysql/bin/mysql $i -uroot -p123456 -e "show tables" | grep -v "Tables" > /usr/local/crontab/$i)
        tablelist=$(cat /usr/local/crontab/$i)
        echo "optimize database $i starting ................" >> $time_log
        echo "$i start at $(date  +[%Y/%m/%d/%H:%M:%S])" >> $time_log
for list in $tablelist
        do
                echo $list
                /usr/local/mysql/bin/mysql $i -uroot -p123456 -e "optimize table $list"
        done
echo "$i end   at $(date  +[%Y/%m/%d/%H:%M:%S])" >> $time_log
echo >> $time_log
done
               
               
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/25264/showart_1006545.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP