Mysql表空间管理的命令

2019-04-23  本文已影响0人  aikonwen

在日常工作中经常会出现数据库表空间不够的情况,需要对大量临时表进行清理,记录一般执行的如下操作。
介绍一下information_schema是Mysql用于元数据的内部数据库,记录了数据库名,表名,列名和访问权限等信息,如下如所示。


information_schema库中内容
查看数据库、表占用空间情况
use information_schema;
select concat(round(sum(data_length/1024/1024),2),'MB') as data from tables;
select concat(round(sum(data_length/1024/1024),2),'MB') as data from tables where table_schema='数据库名';
select concat(round(sum(data_length/1024/1024),2),'MB') as data from tables where table_schema='数据库名' and table_name='表名';
批量删除数据库下面的表
select concat('drop table ',table_name,';') from information_schema.`TABLES` WHERE table_schema='数据库名' and table_name='表名';

执行结果如下:


select语句执行结果
drop table templ6_0_8512;
drop table templ7_0_5850;
drop table templ7_0_8512;
drop table templ8_0_5850;
drop table templ8_0_8512;
drop table templ9_0_5850;
drop table templ9_0_8512;
drop table template0_5850;
drop table template0_8512;
drop table templh1_5850;
drop table templh1_8512;

执行结果:


删除表操作
上一篇下一篇

猜你喜欢

热点阅读