#!/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.www58058.com/6308