#!/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