记一次Mysql大表清理操作

生产的数据库有很多大表,数据量非常大已经对系统稳定产生影响。经过沟通,这些表中之前存放每天的数据,改为只存放每个月最后一天的数据。

下面记录一些常用的查询大表操作语句

查看所有数据库的大小

select
table_schema as '数据库',
sum(table_rows) as '记录数',
sum(truncate(data_length/1024/1024/1024, 2)) as '数据容量(GB)',
sum(truncate(index_length/1024/1024/1024, 2)) as '索引容量(GB)'
from information_schema.tables
group by table_schema
order by sum(data_length) desc, sum(index_length) desc;

查看所有表的大小并排序

select
table_schema as '数据库',
table_name as '表名',
table_rows as '记录数',
truncate(data_length/1024/1024/1024, 2) as '数据容量(GB)',
truncate(index_length/1024/1024/1024, 2) as '索引容量(GB)'
from information_schema.tables
order by data_length desc, index_length desc;

找到一些非常大的表,对该表进行操作

数据库 表名 记录数 数据容量(GB) 索引容量(GB)
pccmdb caf_tbyh_daily 864560564 404.20 360.42
pccmdb caf_tbyh_jbdaily 207974565 259.20 90.78
pccmdb caf_tbyh_jbcxqd 710513371 253.26 237.65
pccmdb rg_to_crsp_yj 73212623 53.80 42.18

你可能感兴趣的:(mysql数据库)