循环删除大数据表中的记录

当你有个大数据表在库里, 你的库早晚会爆掉, 备份不易, 查找困难, 任何操作都举步维艰, 唯有一招: . 但是删也是如些之困难, 会锁库很长时间, 你的客户暴跳如雷, 你的老板头上冒烟. 这时候你咋办, 还能咋办, 只有慢慢删. 可你这个人有这么懒, 网上搜来找去, 看我这个脚本, 节约你的大量时间, 让你渡过又一个美好的一天. 闲言少叙, 书归正传.

#!/bin/sh
# mysql_delta_del.sh 
# -----------------------------

db_user="root"
db_host="127.0.0.1"
db_passwd="yourpass"
db="yourdb"
db_table="mytable"
keep_records=10000000
## start id, you can change according your db
start_id=31000000

# mysql bin's path
MYSQL="$(which mysql)"


maxid=`$MYSQL -u $db_user -h $db_host -p$db_passwd $db -e 'select max(id) from $db_table'`

maxid=`echo $maxid |cut -d" " -f2`

#keep last 10 million records
delto=`echo $maxid - $keep_records  |bc`

echo "target id: $delto"


i=$start_id 
while [ $i -lt $delto ]
do
 echo "delete to $i "

 echo "DELETE FROM $db_table where id<$i LIMIT 1000 " | mysql -u $db_user -p$db_passwd -h $db_host $db
 true $(( i=i+1000 ))

done
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值