原文:MySql批量drop table

今天发现数据库中很多没用的表,想清理掉。

发现mysql好像不支持类似这样的写法:drop table like "%r"

在oracle中,查了资料,是可以通过其他方式来实现:看这里【我顶!链接丢了!】

那么想在mysql中实现,怎么做呢?

两个思路:

第一、修改mysql源码,在drop的时候加上like关键字支持。

第二、写一个脚本,在数据库之外执行。

-----------------------------《混个》-------------------------------

第一个方法,现在还没有办法去做到。【水平不够=。=】

第二个方法的思路:

1、连接数据库

2、查询出所有的符合条件的表

3、挨个删除【删除过程遇到错误输出提示即可】

针对第二个方法的脚本如下:

先创建一些表:脚本如下

#! /bin/bash
for((i=1;i<=10;i++));
do
mysql -P3307 -uroot -proot -e"use test;create table tb_$i(id int);"
done;

然后创建删除shell:

 

#! /bin/bash

word=`echo $1`
params=`echo $#`
echo "your input param is|"$word"|"
#param is ok?
if [ $params -lt 1 ]
then
echo "usage:drop 'yourword'"
exit
fi #connect mysql and read tb names
var=$(mysql -P3307 -uroot -proot -e"use test;show tables like '$word';") count=0
#read table names
for i in $var;
do
let count=$count+1
if [ $count -ne 1 -a $count -ne 2 ]
then
#delete from db
echo "deleting ...$i"
mysql -P3307 -uroot -proot -e"use test;drop table $i"
fi
done;

上面是drop脚本。使用方法:

drop ‘%a%’

需要在后面的参数中指明要匹配的内容。与like关键字后面要加的内容一样。

脚本中每次执行都需要连接数据库。效率比较低下。但是对于少量的表,不会有太大区别。----------------------------------------------------------

if [ $count -ne 1 -a $count -ne 2 ]意思是说,不考虑第一个和第二个参数。因为从mysql读出来的表名称是这样的:;

Tables_in_test () tb_1 tb_10 tb_2 tb_3 tb_4 tb_5 tb_6 tb_7 tb_8 tb_9

前两个需要忽略。

--------------------------------------------------------------

mysql -P3307 -uroot -proot -e"use test;show tables like '$word';"

mysql可以用-e参数来直接执行命令。

MySql批量drop table的更多相关文章

  1. (笔记)Mysql命令drop table:删除数据表

    drop table命令用于删除数据表. drop table命令格式:drop table <表名>; 例如,删除表名为 MyClass 的表:    mysql> drop ta ...

  2. 【MySQL】drop大表

    利用硬链接和truncate降低drop table对线上环境的影响 众所周知drop table会严重的消耗服务器IO性能,如果被drop的table容量较大,甚至会影响到线上的正常. 首先,我们看 ...

  3. 利用硬链接和truncate降低drop table对线上环境的影响

    众所周知drop table会严重的消耗服务器IO性能,如果被drop的table容量较大,甚至会影响到线上的正常. 首先,我们看一下为什么drop容量大的table会影响线上服务 直接执行drop ...

  4. mysql删除大表更快的drop table办法

    mysql删除大表更快的drop table办法 参考资料:https://blog.csdn.net/anzhen0429/article/details/76284320 利用硬链接和trunca ...

  5. MySQL DROP TABLE操作以及 DROP 大表时的注意事项【转】

    删表 DROP TABLE Syntax DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ... [RESTRICT | CASCAD ...

  6. MySQL DROP TABLE操作以及 DROP 大表时的注意事项

    语法: 删表 DROP TABLE Syntax DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ... [RESTRICT | CA ...

  7. Drop Table对MySQL的性能影响分析

    [问题描述] 最近碰到有台MySQL实例出现了MySQL服务短暂hang死,表现为瞬间的并发线程上升,连接数暴增. 排查Error Log文件中有page_cleaner超时的信息,引起我们的关注: ...

  8. MySQL删除大表时潜在的问题(drop table,truncate table)

    来源于:https://www.cnblogs.com/CtripDBA/p/11465315.html,侵删,纯截图,避免吸引流量之嫌 case1,删除大表时,因为清理自适应hash索引占用的内容导 ...

  9. mysql drop table命令使用总结

    drop性能 drop table(innodb引擎) 数量2000w,只需要5m

随机推荐

  1. Linux体系结构

    linux内核结构: system call interface (SCI层) 为用户空间提供了一套标准的系统调用函数来访问linux内核. process management (PM层) 进程管理 ...

  2. 通过wmi获取本地硬件信息的一些疑问。

    通过wmi获取本地硬件信息的一些疑问. http://bbs.csdn.net/topics/391017789 http://blog.csdn.net/xcntime/article/detail ...

  3. 通过WMI的方式去设置LCD背光亮度

    code例如以下: #include "stdafx.h" #include <objbase.h> #include <windows.h> #inclu ...

  4. 我的Go语言学习之旅三:Go语言中的for循环

    这个但是为难我了,我一直是走在WEB前的程序猿,各种循环用起来得心应手.突然间发现到了Go这里竟然行不通了,查阅后才发现,原来Go的for是这样写的. for i:=0;i<10;i++{ fm ...

  5. EularProject 41:最长的n位Pandigital素数问题

    Pandigital prime Problem 41 We shall say that an n-digit number is pandigital if it makes use of all ...

  6. [D3] Start Visualizing Data Driven Documents with D3 v4

    It’s time to live up to D3’s true name and potential by integrating some real data into your visuali ...

  7. Sass(SCSS)中文手册——入门

    简书原文 https://www.jianshu.com/p/e82c27aa05c7 前言 该中文手册是我在Sass中文文档的基础上编辑的,或者也可以理解为就是Sass中文文档的翻版.之所以有这篇文 ...

  8. VS2012 打包部署程序

      一. 下载 InstallShield 2015(支持VS2012) VS2012没有自带打包工具,所以要先下载并安装一个打包工具.我采用微软提供的打包工具:  InstallShield2015 ...

  9. centos中的配置文件 分类: B3_LINUX 2015-04-03 22:21 184人阅读 评论(0) 收藏

    /etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置. /etc/bashrc:为每一个 ...

  10. js课程 2-8 js内置对象有哪些

    js课程 2-8 js内置对象有哪些 一.总结 一句话总结:JS中内置了17个对象,常用的是Array对象.Date对象.正则表达式对象.string对象.Global对象. 1.js常用对象有哪些? ...