利用Shell脚本自动执行MYISAM表批量压缩
时间:2015-09-20 23:32 来源:linux.it.net.cn 作者:IT
对MYISAM表的压缩,可以使用myisampack和myisamchk完成(myisampack完之后必须进行myisamchk才能使用压缩后的表,而且是只读的), 其详细地用法可以参考官方文档: http://dev.mysql.com/doc/refman/5.1/zh/client-side-scripts.html。
下面是用于实现某数据库下表压缩的shell过程(值得注意的是,如果数据量大,建议分多次操作,因其会很耗时):
01
#!/bin/bash
02
data_dir=
"/data/mysql/my_dbname/"
03
filelist=`
ls
$data_dir`
04
echo
"MYISAMPACK BEGIN."
05
for
filename
in
$filelist
06
do
07
idx=`
expr
match
"$filename"
".*.MYI"
`
08
if
[[ $idx>0 ]]
09
then
10
/usr/bin/myisampack $data_dir$filename
11
fi
12
done
13
14
echo
"MYISAMPACK End. MYISAMCHK BEGIN."
15
16
for
filename
in
$filelist
17
do
18
idx=`
expr
match
"$filename"
".*.MYI"
`
19
if
[[ $idx>0 ]]
20
then
21
/usr/bin/myisamchk -r -o -f --
sort
-index --analyze $data_dir$filename
22
fi
23
done
24
echo
"MYISAMCHK END."
这两个操作需要谨慎使用,在压缩之前需要确认mysqld已关闭或者要压缩的表不会有其他的sql操作;而且压缩过程会很占用cpu资源,建议在服务器空闲的状态进行。
(责任编辑:IT)
对MYISAM表的压缩,可以使用myisampack和myisamchk完成(myisampack完之后必须进行myisamchk才能使用压缩后的表,而且是只读的), 其详细地用法可以参考官方文档: http://dev.mysql.com/doc/refman/5.1/zh/client-side-scripts.html。
下面是用于实现某数据库下表压缩的shell过程(值得注意的是,如果数据量大,建议分多次操作,因其会很耗时):
这两个操作需要谨慎使用,在压缩之前需要确认mysqld已关闭或者要压缩的表不会有其他的sql操作;而且压缩过程会很占用cpu资源,建议在服务器空闲的状态进行。 (责任编辑:IT) |