阿里云RDS的mysql数据库占用空间超过90%的处理

时间:2024-03-11 17:12:19
阿里云RDS数据库最大支持2T,目前已经占用了90%,如果进行分库或者迁移比较麻烦,思路是找出占用空间过大的日志或不重要的文件进行删除操作
查询所有数据库占用磁盘空间大小的SQL语句:


show binary logs; 
show variables like \'%log%\'; 
set global expire_logs_days = 10;


select TABLE_SCHEMA, concat(truncate(sum(data_length)/1024/1024,2),\' MB\') as data_size,
concat(truncate(sum(index_length)/1024/1024,2),\'MB\') as index_size
from information_schema.tables
group by TABLE_SCHEMA
order by data_length desc;


查询单个库中所有表磁盘占用大小的SQL语句:


select TABLE_NAME, concat(truncate(data_length/1024/1024,2),\' MB\') as data_size,
concat(truncate(index_length/1024/1024,2),\' MB\') as index_size
from information_schema.tables where TABLE_SCHEMA = \'TestDB\'
group by TABLE_NAME
order by data_length desc;

注意替换以上的TestDB为具体的数据库名


找到占用空间大的单表,进行删除操作即可