python去掉MySQL中重复的数据_python 批量删除mysql前缀相同的表

1,一般游戏log数据库会存储大量的玩家行为日志,一种行为一张表,每天生成一张新表,一天会有30+张不同行为的表,通常会保留玩家日志1年左右,对于超过1年的日志需要删除

2,log数据库一年会保存1W多张表格,用python写个工具,来高效批量的删除表格

解决思路:

1,分析表名,找出相同的规律,本人维护的游戏log库表名后缀通常是以 年+月+日生成的,有了这个规律就好办了

2,用一条sql语法生成出drop table 表名

#下面这条语法是模糊匹配找出2016年的所有表,然后生成'drop table ', table_name, ';'删除语法

select CONCAT( 'drop table ', table_name, ';' ) FROM information_schema.tables Where table_name LIKE '%_16%';

执行结果如下:

drop table LogAccLogout_160401;

drop table LogAccLogout_160402;

drop table LogAccLogout_160403;

drop table OpTradeInfo_160421;

drop table OpTradeInfo_160422;

drop table OpTradeInfo_160423;

drop table OpTradeInfo_160424;

3,先把执行的结果保存在文件中,用来给python脚本读取用的

4,python循环逐行读取刚刚保存的文件,然后mysql模块登陆mysql服务器

用模块是MySQLdb,安装方法:yum -y install MySQL-python*

代码如下:

#!/usr/bin/python#-*- coding: UTF-8 -*-

importMySQLdb

db= MySQLdb.connect("192.168.135.156","mysql_user","mysql_password","game_log")

cursor=db.cursor() #获得mysql游标

open_file= open('jieguo_result_201_17.txt','r') #先打开已保存的文件for line inopen_file.readlines(): #for循环逐行读取每条try:printline,

cursor.execute(line) #执行sql删除语法

db.commit() #提交请求exceptException as e:printeife: #遇到错误直接跳过,继续执行后面的删除语法continuedb.close()

open_file.close()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值