乐趣区

关于mysql:记一次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
退出移动版