python 删除大表数据
#!/usr/bin/env python
# encoding: utf-8#@author: 东哥加油!
#@file: del_tb_bigtable_statistic.py
#@time: 2018/11/21 15:39import pymysql
import datetime
import math
import time#获取连接
def get_conn():conn = Nonetry:conn = pymysql.connect(host="192.168.1.2",port=3306,user="root",passwd="mysqlpassword",charset="utf8",)except Exception as err:print(err)return conn#查询语句执行
def get_data(sql):conn = get_conn()cur = conn.cursor()cur.execute(sql)data = cur.fetchall()conn.close()return data#93天前的时间戳
# 2018-07-24 00:00:00 转成毫秒时间戳
def get_pdate_begin(xday):now_time = datetime.datetime.now()step_time = datetime.timedelta(days=xday)yes_time = now_time - step_timepdate = yes_time.strftime('%Y%m%d')print(pdate)return pdate#数据备份,放到tb_bigtable_statistic_hist表中
def data_bak(xday):print("开始时间:",time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))conn = get_conn()cur = conn.cursor()cidlist = data_zk(xday)if cidlist == 0:print('当天无数据')else:for cids in cidlist:try:sql = '''insert into db_order.tb_bigtable_statistic_hist \select * from db_order.tb_bigtable_statistic \where cid in( %s )''' % cidscur.execute(sql)conn.commit()except:print('备份失败!!!')conn.rollback()conn.close()exit(99)conn.close()print("结束时间:", time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))#组装cid成in的条件(....),5000个cid为一组
def data_zk(xday):conn = get_conn()cur = conn.cursor()cid = get_cid(xday)var1 = "-999"i = 0list = []if cid.__len__() > 0:for one in cid:var1=var1+","+str(one[0])i=i+1if(i==2000):list.append(var1)var1 = "-999"i=0list.append(var1)return listelse:return 0#获取该条件所有的cid
def get_cid(xday):pdate = get_pdate_begin(xday)sql = '''SELECT cidFROM db_order.tb_bigtable_statistic WHERE pdate = %s limit 20000''' % (pdate)cid = get_data(sql)return cid#删除数据
def del_data(xday):print("删除开始时间:", time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))conn = get_conn()cur = conn.cursor()cidlist = data_zk(xday)if cidlist == 0:print('当天无数据')else:for cids in cidlist:try:sql = '''delete from db_order.tb_bigtable_statistic \where cid in( %s )''' % cidscur.execute(sql)conn.commit()except:print('备份失败!!!')conn.rollback()conn.close()exit(99)conn.close()print("删除结束时间:", time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))def move_data(xday):data_bak(xday)del_data(xday)if __name__ == '__main__':move_data(93)
转载于:https://www.cnblogs.com/52shaidan/p/10106508.html
python 删除大表数据相关推荐
- mysql快速删除大表数据部分数据_mysql删除大表的部分数据
mysql删除大表的部分数据 好久没写博客.最近项目要上线.下班时间还得陪着老妈.实在没时间更新. 今天有人提了一个问题, www.2cto.com 一个表有1亿6000万的数据,有一个自增ID.最 ...
- mysql truncate 大表_MySQL删除大表时潜在的问题(drop table,truncate table)
case1,删除大表时,因为清理自适应hash索引占用的内容导致的MySQL服务挂起 case2,大表的随意Drop或者truncate导致MySQL服务的挂起 按照本文中的结论就是 MySQL5.6 ...
- [原]Oracle删除大表并回收空间的过程
近日在查询某项日志的时候,发现查询非常缓慢,根据以往的经验这是由于某个日志表过大引起的,为了加快查询,决定将大部分的历史数据迁移到另外一个表中,本文主要记录删除这个大表的过程,就解决问题而言还有很多方 ...
- MySQL-在线处理大表数据 在线修改大表的表结构
文章目录 生猛干货 官方文档 概述 示例 大表数据的分批处理 修改大表的表结构 方案一 : 从表修改,主从切换 方案二: pt-online-schema-change 搞定MySQL 生猛干货 带你 ...
- mysql数据库truncate 夯住_MySQL如何优雅的删除大表实例详解
前言 删除表,大家下意识想到的命令可能是直接使用DROP TABLE "表名",这是初生牛犊的做法,因为当要删除的表达空间到几十G,甚至是几百G的表时候.这样一条命令下去,MySQ ...
- MySQL 删除大表的性能问题
微博上讨论MySQL在删除大表engine=innodb(30G+)时,如何减少MySQL hang的时间,现做一下简单总结:(微博地址:http://weibo.com/1642466057/yuP ...
- mysql 两张大表关联_详解mysql生产环境如何快速有效的删除大表,附实验说明
概述 我们很多时候都会去drop一些大表,特别是生产环境做操作时,这里主要提一些注意事项,仅供参考. 01 相关语法 1.删表 DROP TABLE SyntaxDROP [TEMPORARY] TA ...
- Mysql大表数据清理
假设大表表名:t_log delete操作会记录mysql日志,大数据量的清理会耗费大量时间,所以一般得用其他方式. 1.如果大表数据对我们来说不重要,完全可以直接清理,那么可以用truncate t ...
- MySQL快速清空大表数据(truncate table table_name;)
MySQL快速清空大表数据 项目初次上线,进行性能测试造的数据量巨大,都是些不可用数据,但又有一些是必须保留的,很多时候需要进行系统性的清理数据或者是,将有用的数据筛选出来之后再插入到表中!保留表结构 ...
- truncate 删除大表
truncate 删除大表 1. 删除dept_bak表中的数据 1.1 使用delete删除 delete from dept_bak; 这种删除数据的方式比较慢 delete语句删除数据的原理(d ...
最新文章
- 实现串匹配的并行算法_5-1-KMP模式匹配
- 使用 Fluent API 配置/映射属性和类型
- Why choose MySQL?
- Confluence 6 管理协同编辑 - 最大编辑者的限制
- 目标检测算法之FPN(附FPN代码实现)
- JMeter源码集成到Eclipse
- PIM SM建立SPT树过程与实验
- Python+selenium+eclipse执行web自动化(四)控件处理
- 鸿蒙谁法力最强,上古神话中,鸿蒙初开时有九大古神,鸿钧勉强上榜,烛龙位列前三...
- [MFC] 手动美化 MFC 窗体
- 白杨SEO:你知道SEO这个工作被误解或夸大有哪些吗?SEO不是万能的
- 韩天峰 - Swoole4-全新的PHP编程模式
- nuc8i7beh黑苹果_Intel NUC8i7BEH 黑苹果Hackintosh EFI引导
- mysql值为空返回0 ,否则 返回1
- android 球面 旋转 坐标系,天球坐标系和地球坐标系-GPS定位原理及应用-电子发烧友网站...
- python柱状图zzt_Python torch.diag方法代碼示例
- 物联网交互创新的探讨
- 计算机网络原理自学考试课程,自学考试《计算机网络原理》课程全国统一命题考试说明...
- Parity Game(并查集)
- 魔众相册系统 v1.1.0 页面SEO优化,系统升级调整
热门文章
- java三种经典的比对方法_几种任务调度的 Java 实现方法与比较
- 在网页输入框输入角标_这个免费插件能帮我们把Excel内容快速填充到网页表单?...
- 616nyoj 新手dp
- 【2020CCPC秦皇岛:C】Cameraman(计算几何+思维+枚举)
- 【手把手教你】股市技术分析利器之TA-Lib
- 织梦错误mynews.lib.php on line 40,织梦错误Fatal error: Using $this when not in object context...
- java ee自学_自学JavaEE难度大不大?
- 线接触和面接触的区别_接触器是啥?跟继电器有啥区别,6大常见故障怎么处理...
- php 编译原理,php编译原理 - Robin3D的个人页面 - OSCHINA - 中文开源技术交流社区
- 自组织映射网络SOMnet