在日常数据库运维中,查看 MySQL 数据库大小是常见需求,例如磁盘空间告警时快速定位占用大户、容量规划时评估增长趋势,或成本优化时识别冗余数据。本文将介绍两种查看方法:阿里云 RDS 控制台空间分析和客户端 SQL 命令查询,前者适合非技术人员快速巡检,后者适合需要精确统计的开发运维人员。
第一种方式:阿里云RDS控制台
使用空间分析功能:

注意事项:阿里云rds控制台空间分析不能超过20000张表。
分析RDS MySQL存储空间-云数据库 RDS(RDS)-阿里云帮助中心

第二种方式:客户端执行命令查看
可以在客户端执行或阿里云DMS控制台执行,都需要创建高权限账号来执行。在information_schema表上执行。
SELECT
table_schema AS '数据库名',
ROUND(SUM(data_length) / 1024 / 1024, 2) AS '数据大小(MB)',
ROUND(SUM(index_length) / 1024 / 1024, 2) AS '索引大小(MB)',
ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS '总大小(MB)'
FROM information_schema.TABLES
WHERE table_schema NOT IN (
'information_schema',
'mysql',
'performance_schema'
)
GROUP BY table_schema
ORDER BY SUM(data_length + index_length) DESC;
示例:

总结
两种查看 MySQL 数据库大小的方法各有优劣,适用于不同场景:
| 对比维度 | 阿里云 RDS 控制台 | 客户端执行命令 |
|---|---|---|
| 优点 | 操作简单,可视化界面直观展示空间使用概况、剩余可用天数、空间碎片及异常诊断,无需编写 SQL,适合非技术人员快速查看。 | 灵活可控,可自定义查询维度(按库、按表、按索引),结果精确到 MB,适合需要深度分析或自动化脚本采集的场景。 |
| 缺点 | 仅适用于阿里云 RDS 实例,且空间分析功能不支持超过 20000 张表的实例;无法自定义查询粒度。 | 需要创建高权限账号,对使用者有一定 SQL 基础要求;查询结果需自行解读,缺少可视化诊断能力。 |
| 适用场景 | 日常运维巡检、快速定位空间异常、非技术人员查看实例整体空间状况。 | 开发调试、容量规划、批量统计多个数据库大小、需要精确数值或接入监控告警系统。 |
**推荐建议:**日常快速巡检优先使用阿里云 RDS 控制台的空间分析功能,直观高效;当需要精确统计、批量对比或定制化查询时,使用客户端 SQL 命令。两者可结合使用,先用控制台发现异常,再用 SQL 命令深入定位具体库表。