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 -*- import MySQLdb 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 in open_file.readlines(): #for循环逐行读取每条
try:
print line,
cursor.execute(line) #执行sql删除语法
db.commit() #提交请求
except Exception as e:
print e
if e: #遇到错误直接跳过,继续执行后面的删除语法
continue db.close()
open_file.close()

python 批量删除mysql前缀相同的表的更多相关文章

  1. mysql批量删除指定前缀或后缀表

    今天突然发现我们数据库中多出很多表,后缀名为"copy",预计是navicat直接拷贝导致的,然后要对这些有同样后缀名的表进行删除,假设一个一个选择会非常麻烦,表计较多,在网上找了 ...

  2. Python批量删除mysql中千万级大量数据

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

  3. sqlserver 批量删除相同前缀名的表

    ) DECLARE tmpCur CURSOR FOR SELECT name FROM sys.objects WHERE TYPE='U' AND name LIKE N'HSUPA%' OPEN ...

  4. MySQL 批量删除相同前缀的表

    sql 命令批量生成drop命令 需要批量删除表,而MySQL又没有提供相关的功能:一般我们建表也都会使用相同前缀,那么,在不使用工具的情况下可以选择使用sql生成批量删除命令: 如删除以 " ...

  5. MySQL批量删除指定前缀表

    Select CONCAT( 'drop table ', table_name, ';' ) FROM information_schema.tables Where table_name LIKE ...

  6. MySQL中批量删除指定前缀表的sql语句

    有时候我们在安装一些cms的时候,这些cms都是带表前缀的方便区分数据,但有时候我们测试完需要删除的时候又有别的前缀表就可以参考下面的方法 代码如下:Select CONCAT( 'drop tabl ...

  7. 如何通过PhpMyAdmin批量删除MYSQL数据库数据表

    使用这个方法前,强烈建议先备份整个数据库.至于怎么备份?你不会么?在本文下方留言吧. 具体方法:复制下面的php执行语句,保存为sql.php文件(注意配置数据库名称.密码.数据表头),通过ftp上传 ...

  8. python 多线程删除MySQL表

    一.需求分析 在<python 统计MySQL表信息>这篇博客中,链接如下: https://www.cnblogs.com/xiao987334176/p/9901692.html 已经 ...

  9. Python批量删除指定目录下的指定类型的文件

    Python作为一种脚本语言.其很适合文件级的各种操作.以下的代码能够批量删除指定目录下的所有特定类型(CSV类型)的文件. import sys, csv , operator import os ...

随机推荐

  1. Centos下Sphinx的下载与编译安装

    官方下载地址   http://sphinxsearch.com/downloads/release/ 百度云下载地址  https://pan.baidu.com/s/1gfmPbd5 wget  ...

  2. 使用commons-csv简单读写CSV文件

    文章首发于我的github博客 需求 客户的开发测试环境将做迁移.因此需要对zookeeper上的重要的数据以CSV文件格式做备份. 本文通过Apache的commons-csv操作CSV文件.官网地 ...

  3. SecureCRT + Tmux 分屏 高效开发

    最近发现了SecureCRT的一些好玩的功能, 具体如下: 1. 发送消息到所有的终端 首先选中查看-->交互窗口 此时会看到下面出现一个输入窗口 然后, 右击选择"发送交互到所有标签 ...

  4. SQL 分组统计 行转列 CASE WHEN 的使用

    原文地址:http://blog.itpub.net/26451903/viewspace-733526 原文在分组统计部分  sql是有问题的     本文已将sql改正   已用红色标记  Cas ...

  5. 转:20分钟教你使用hexo搭建github博客

    注册Github账号 这里我们就不多讲了,小伙伴们可以点击这里,进入官网进行注册. 创建仓库 图片来自Github 登录账号后,在Github页面的右上方选择New repository进行仓库的创建 ...

  6. 简述在javascript和jquery中cookie的使用

    html <body onload="cookieJar()"></body> javascript <script href="../st ...

  7. hashtable的运用实例

    #include <hash_set> #include <iostream> using namespace std; int main() { hashtable<i ...

  8. ASP.NET没有魔法——ASP.NET MVC 模型绑定解析(下篇)

    上一篇<ASP.NET没有魔法——ASP.NET MVC 模型绑定解析(上篇)>文章介绍了ASP.NET MVC模型绑定的相关组件和概念,本章将介绍Controller在执行时是如何通过这 ...

  9. vscode格式化Vue出现的问题

    一.VSCode中使用vetur插件格式化vue文件时,js代码会自动加上冒号和分号 本来就是简写比较方便舒服,结果一个格式化回到解放前 最后找到问题原因: 首先,vetur默认设置是这个样的.也就是 ...

  10. uboot 添加hello命令

    平台:MPC8315(POWERPC) 1.在/common/ 目录下创建自己的文件,最好前缀为cmd_. cmd_hello.c ********************************** ...