一个删除MySQL大表数据的shell脚本

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

(0)
tarstars
上一篇 2015-07-16
下一篇 2015-07-19

相关推荐

  • 文件系统的挂载使用总结

    文件系统使用 除根文件系统以外的文件系统创建后要使用需要先挂载至挂载点后才可以被访问,挂载点即分区设备文件关联的某个目录文件,挂载命令mount和 卸载命令umount; 挂载点: mount_point,作为被挂载的文件系统的访问入口; 作为挂载点需要满足三个条件:  (1)这个目录事先存在  (2)使用未被或不会被其他进程使用到的目录…

    系统运维 2016-11-19
  • keepalived实现nginx的高可用-实战可用

    Keepalived.conf解析 三大部分: 全局定义块、VRRP 实例定义块及虚拟服务器定义块 实例剖析 ! Configuration File for keepalived   global_defs {    notification_email {…

    Linux干货 2015-04-14
  • day5总结笔记

    本文内容: 索引节点 硬链接与软链接 重定向 用户组 useradd命令 索引节点: 索引节点包含了一个表,包含了有关文件的元数据,包含:     文件类型,权限,UID,GID 链接数(指向这个文件名路径名称个数)      该文件的大小和不同的时间戳。&n…

    系统运维 2016-08-08
  • 详解Ntbackup的五种备份方式(下)

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://jeffyyko.blog.51cto.com/28563/145644 继续上文。   四、差异备份(Differental Backup)     差异备份是…

    Linux干货 2015-03-26
  • find命令简单总结

     find     字符串类查询:            -type   //根据文件类型查找       &…

    Linux干货 2015-09-14
  • PHP SOCKET编程

    1. 预备知识        一直以来很少看到有多少人使用php的socket模块来做一些事情,大概大家都把它定位在脚本语言的范畴内吧,但是其实php的socket模块可以做很多事情,包括做ftplist,http post提交,smtp提交,组包并进行特殊报文的交互(如smpp协议),whois查询。这些都是比较常见…

    Linux干货 2015-04-10