python处理千万级数据_Python批量删除mysql中千万级大量数据的脚本分享
场景描述
线上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处理千万级数据_Python批量删除mysql中千万级大量数据的脚本分享相关推荐
- python查询千万级数据_Python批量删除mysql中千万级大量数据
场景描述 线上mysql数据库里面有张表保存有每天的统计结果,每天有1千多万条,这是我们意想不到的,统计结果咋有这么多.运维找过来,磁盘占了200g,最后问了运营,可以只保留最近3天的,前面的数据,只 ...
- python mysql批量更新_Python批量删除mysql中千万级大量数据的脚本分享
场景描述 线上mysql数据库里面有张表保存有每天的统计结果,每天有1千多万条,这是我们意想不到的,统计结果咋有这么多.运维找过来,磁盘占了200G,最后问了运营,可以只保留最近3天的,前面的数据,只 ...
- python批量删除文件名_python批量删除文件名中的未知字符
python 批量删除文件名中的未知字符 如上图所示, 需要修改的文件名的个数超过 500 个, 如果一个一个的删除非常的费时间, 现 在用 python 修改很容易,方便又省时间,具体步骤如下 1 ...
- python列表去掉特定项_python实现删除列表中某个元素的3种方法
python中关于删除list中的某个元素,一般有三种方法:remove.pop.del: 1.remove: 删除单个元素,删除首个符合条件的元素,按值删除 举例说明: ? [1, 3, 4, 5, ...
- python读取excel日期和时间数据_python 在excel文件中写入date日期数据,以及读取excel日期数据,如何在python中正确显示date日期。...
如何通过python写入date数据了? 写入还是很简单的. import xlwt3 import datetime as dt workbook = xlwt.Workbook() worksh ...
- Java如何给Mysql中插入year类型数据
文章目录 Java如何给Mysql中插入year类型数据 实际问题: 解决方案: 从数据库中读取year类型数据到Java 从Java中往数据库存储year数据 Java如何给Mysql中插入year ...
- python列表中怎么去掉空值_Python 如何删除列表中的空值
今天在获取android性能CPU测试数据时,发现这么一个问题: # -*- coding:utf-8 -*- import os import time cpuInfo = os.popen(r'a ...
- MyBatis使用in进行列表中数据的批量删除
MyBatis使用in 准备 使用in进行列表中数据的批量删除 准备 数据库表 bean 使用in进行列表中数据的批量删除 以删除age in (20,43,99)的数据项为例.很明显此时不可以使用# ...
- 如何批量删除mysql的数据库_如何快速批量删除Mysql数据库中的数据表
一个mysql数据库中,是可以同时安装几个网站程序的,在使用中,我们只需要用不同的数据库表前缀来区分就可以了.但随着我们不断调试,那么数据 库中的表,就会一天天的多起来,如一个一个的删除就很麻烦.很辛 ...
最新文章
- IPv6 与 IPv4现状
- java消息通信_原生 Java 客户端进行消息通信
- Curator实现分布式锁的基本原理-LockInternals.internalLockLoop
- Python应用实战-Clumper | dplyr式的Python数据操作包
- 该计算机没有运行windows无线服务器,老司机示范win7系统诊断提示此计算机上没有运行的windows无线服务的恢复方法...
- Redis学习---(8)Redis 哈希(Hash)
- 华为谈“不造车” ,每辆车上赚1万元。王兴:特斯拉终于遇到真正的对手!...
- 【Java】@transient代表着什么
- FreeRTOS源码分析与应用开发09:低功耗Tickless模式
- PyTorch的hook及其在Grad-CAM中的应用
- 我如何判断漏洞奖励计划是否值得参加?如何获得最大收益?
- JS+dom简单运动实现
- 蛋花花分享8个能提升Web前端开发技能的技巧
- 1.Prometheus 监控技术与实践 --- 云计算时代的监控系统
- CentOS7.0下安装PHP5.6.30服务
- html 星星字体,做华丽的星星文字效
- 自动机器学习框架介绍与使用(flaml、h2o)
- 京东手机电商大数据统计平台搭建
- Java:判断是一年的第几天
- 集成平台即服务,云和……独角兽