场景描述

线上mysql数据库里面有张表保存有每天的统计结果,每天有1千多万条,这是我们意想不到的,统计结果咋有这么多。运维找过来,磁盘占了200G,最后问了运营,可以只保留最近3天的,前面的数据,只能删了。删,怎么删?

因为这是线上数据库,里面存放有很多其它数据表,如果直接删除这张表的数据,肯定不行,可能会对其它表有影响。尝试每次只删除一天的数据,还是卡顿的厉害,没办法,写个Python脚本批量删除吧。

具体思路是:

每次只删除一天的数据;

删除一天的数据,每次删除50000条;

一天的数据删除完,开始删除下一天的数据;

Python代码

# -*-coding:utf-8 -*-

import sys

# 这是我们内部封装的Python Module

sys.path.append('/var/lib/hadoop-hdfs/scripts/python_module2')

import keguang.commons as commons

import keguang.timedef as timedef

import keguang.sql.mysqlclient as mysql

def run(starttime, endtime, regx):

tb_name = 'statistic_ad_image_final_count'

days = timedef.getDays(starttime,endtime,regx)

# 遍历删除所有天的数据

for day in days:

print '%s 数据删除开始'%(day)

mclient = getConn()

sql = '''

select 1 from %s where date = '%s' limit 1

'''%(tb_name, day)

print sql

result = mclient.query(sql)

# 如果查询到了这一天的数据,继续删除

while result is not ():

sql = 'delete from %s where date = "%s" limit 50000'%(tb_name, day)

print sql

mclient.execute(sql)

sql = '''

select 1 from %s where date = '%s' limit 1

'''%(tb_name, day)

print sql

result = mclient.query(sql)

print '%s 数据删除完成'%(day)

mclient.close()

# 返回mysql 连接

def getConn():

return mysql.MysqlClient(host = '0.0.0.0', user = 'test', passwd = 'test', db= 'statistic')

if __name__ == '__main__':

regx = '%Y-%m-%d'

yesday = timedef.getYes(regx, -1)

starttime = '2019-08-17'

endtime ='2019-08-30'

run(starttime, endtime, regx)

以上就是Python批量删除mysql中千万级大量数据的脚本的详细内容,更多关于python 删除MySQL数据的资料请关注脚本之家其它相关文章!

python mysql批量更新_Python批量删除mysql中千万级大量数据的脚本分享相关推荐

  1. python处理千万级数据_Python批量删除mysql中千万级大量数据的脚本分享

    场景描述 线上Mysql数据库里面有张表保存有每天的统计结果,每天有1千多万条,这是我们意想不到的,统计结果咋有这么多.运维找过来,磁盘占了200G,最后问了运营,可以只保留最近3天的,前面的数据,只 ...

  2. python查询千万级数据_Python批量删除mysql中千万级大量数据

    场景描述 线上mysql数据库里面有张表保存有每天的统计结果,每天有1千多万条,这是我们意想不到的,统计结果咋有这么多.运维找过来,磁盘占了200g,最后问了运营,可以只保留最近3天的,前面的数据,只 ...

  3. mysql 批量update sql_批量更新sql |批量update sql

    zencart批量更新后台邮箱地址sql zencart批量更新后台邮箱地址sql UPDATE `configuration` SET `configuration_value` = '新邮箱地址' ...

  4. MySQL的批量更新和批量新增优化

    MySQL的批量更新和批量插入优化 如果需要批量插入和批量更新操作就需要进行sql 的优化,否则近30万条数据的插入或更新就会耗费几分钟甚至更多的时间, 此文仅批量插入和批量更新的几种优化. 批量插入 ...

  5. 在Hibernate中处理批量更新和批量删除

    批量更新是指在一个事务中更新大批量数据,批量删除是指在一个事务中删除大批量数据.以下程序直接通过Hibernate API批量更新CUSTOMERS表中年龄大于零的所有记录的AGE字段: 如果CUST ...

  6. ef oracle 批量更新慢_详解Oracle中多表关联批量插入、批量更新与批量删除

    概述 今天主要介绍一下Oracle数据库中多表关联批量插入.多表关联批量更新和多表关联批量删除.下面用实验来理解下~ 一.创建必须的表和序列语句 --创建部门表 dept:CREATE TABLE d ...

  7. batchupdate写法_批量更新sql_批量update_sql(Batch update sql_ batch update_sql).doc

    批量更新sql_批量update_sql(Batch update sql_ batch update_sql) 批量更新sql_批量update_sql(Batch update sql_ batc ...

  8. mysql根据id删除数据库,MYSQL删除表中的指定ID数据

    MYSQL删除表中的指定ID数据 删除A表中的ID 中的开头以B* 的数据库. 复制代码 代码如下: delete FROM A WHERE id like 'B%' 单独删除 A 表中的ID B 复 ...

  9. Mysql清空表(truncate)与删除表中数据(delete)的区别

    2019独角兽企业重金招聘Python工程师标准>>> 为某基于wordpress搭建的博客长久未除草,某天升级的时候发现已经被插入了几万条垃圾留言,如果一条条删除那可真是累人的活. ...

最新文章

  1. 移植uboot第二步:分析uboot
  2. 十年编程经验输给新晋AI工程师,6个月我们带你绝地反击
  3. 属性总结(一):marker
  4. SAP CRM里产品主数据的文本模型设计
  5. LC-BLSTM结构快速解读
  6. 排球制作html,MAYA打造排球建模教程
  7. 抖音回应火山小视频被判赔腾讯800万元:目前已提起上诉
  8. 智能优化算法:群居蜘蛛优化算法-附代码
  9. 华为linux服务器系统安装,linux服务器系统安装
  10. 永洪BI-报表生成URL
  11. 91卫图助手免费获取高清影像
  12. 【pandas】--DataFrame数据筛选(二)
  13. 烟台初中计算机会考,山东烟台市2018年初中学业水平考试WORD 版有答案
  14. 《理想藏书》书籍推荐
  15. 将电脑调成护眼色不一定起到护眼的功能
  16. VUE引入Echarts 打包文件过大——解决方法2:CDN引入
  17. Mysql 时间与时区
  18. 16进制字符串转字节
  19. 台湾代工三十年,“教父”难再寻
  20. 计算机工具属性不见了怎么办,电脑文件夹选项不见了,详细教您解决电脑文件夹选项不见了...

热门文章

  1. 关于配置Tomcat的URIEncoding
  2. 求时间差的sql语句。 比如如下数据
  3. git 撤销修改以及删除文件(亲测最后一个删除后还原)
  4. JMeter性能测试,完整入门篇(自己做测试了)
  5. Laravel的Class Laravel\Passport\Passport not found
  6. Linux字符串三剑客笔试题集合
  7. 一级计算机信息技术及应用考试大纲,江苏省高等学校计算机等级考试一级大纲及考试说明...
  8. python3迭代器和可迭代对象_一文读懂 Python3 可迭代对象、迭代器、生成器区别...
  9. PHP各种实用的开源库推荐
  10. oracle子查询子查询,Oracle 单行子查询和多行子查询