mysql 删除大量数据库_大量删除数据库记录

#!/bin/bash

FILE=result.sql

BAK="klvchen.goods_detail_img_20210127" # 备份删除数据的表

PRO="klvchen.goods_detail_img" # 需要删除的表

for((i=0;i<=9060;i++))do # 循环 9060 次,每次 1000 条数据,删除 9060000 多数据

mysql -h XXXXXX-uXXXXXX -pXXXXXX -e "select id from ${BAK} limit `expr $i \* 1000`, 1000" > $FILE

sed -i '1d' $FILE # 删除第一行

sed -i "s#^#\'#g" $FILE # 在每行第一个字符前加 '

sed -i "s#\$#\',#g" $FILE # 在每行最后一个字符前加 ',

sed -i "1s#^#delete from ${PRO} where id in (\n#" $FILE # 在第一行插入数据

sed -i '$s#,#);#' $FILE # 在最后一行把 , 替换成 ;#

mysql -h XXXXXX -uXXXXXX -pXXXXXX < $FILE

echo $i

sleep 1

done

注意,下面一次获取 1000 条数据,并进行删除,需要对数据库进行观察,可能会有 IOPS 问题,简单的观察方法,若程序执行速度快,循环快,则问题不

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值