#!/bin/bash
#为了删除一些特别大的表
dbname='' #库名
tabname='' #表名
step='10000' #删除步长
sleeptime=1 #睡眠时间
start_index=30000001 #开始行
end_index=39938589 #结束行
#为了防止误执行,把密码删除,用的时候再加
MYSQL="mysql -uroot -p -t -e "
i_start=$start_index
i_end=$(expr "$start_index" + "$step")
i_end=$(expr "$i_end" - 1)
if [ $i_end -gt $end_index ]; then
i_end=$end_index
fi
while [ $i_end -le $end_index ]; do
echo "start delete from $i_start to $i_end"
#mysql delete delete from yitain where id >= $i_start and id <= $i_end
#$MYSQL "delete from $dbname.$tabname where id >= $i_start and id <= $i_end;"
i_start=$(expr "$i_end" + 1)
i_end=$(expr "$i_end" + "$step")
if [ $i_start -gt $end_index ]; then
break
fi
if [ $i_end -gt $end_index ]; then
i_end=$end_index
fi
sleep $sleeptime
done
原创文章,作者:tars,如若转载,请注明出处:http://www.178linux.com/6308