快速且批量删除MySQL表
程序员文章站
2022-04-10 12:30:00
...
现象
-
MySQL一个库下的表太多,导致数据库打开缓慢
如果在同一个database下的表太多就会导致执行use database;和show tables;都会非常非常慢,通过查询mysql的执行进程:show processlist;
可以从图上看到有扫描表的lock进程,这样会hang住(即使你喝再多杯的咖啡也无济于事),这个时候就需要换个思路执行下面的命令先杀掉这些进程kill id
解决方法
-
批量导出mysql中需要删除的表
/usr/local/mysql/bin/mysql -h127.0.0.0 -uroot -p -A -e "select concat('drop table ', TABLE_NAME, ';') from information_schema.tables where TABLE_NAME like 'test_%'" > /opt/hzj.sql
注意:连接mysql的时候记得加-A,避免进行库下的表扫描,可快速得到结果
-
进入mysql命令行并执行脚本
source /opt/hzj.sql
其中/opt/hzj.sql就是第一步得到的表名文件的绝对路径
上一篇: jQGrid动态填充select下拉框的选项值(动态填充)
下一篇: PHP生成随机中文字符串
推荐阅读
-
Excel借助数据透视表的报表筛选功能快速批量创建N个工作表名
-
php批量删除数据库下指定前缀的表以prefix_为例
-
mysql 如何修改、添加、删除表主键
-
Excel2010如何删除数据表中的重复条目将重复数据批量删除
-
实现MySQL定时批量检查表repair和优化表optimize table的shell脚本
-
Ctrl+A全选并Delete批量删除工作表中所有看得见的图片
-
mysql删除关联表的实操方法
-
MySQL删除表操作实现(delete、truncate、drop的区别)
-
WPF DataGrid显示MySQL查询信息,且可删除、修改、插入 (原发布 csdn 2018-10-13 20:07:28)
-
SQLServer用t-sql命令批量删除数据库中指定表(游标循环删除)