MySQL 表容量统计的估算边界
information_schema.tables 可按 table_schema 汇总 DATA_LENGTH、INDEX_LENGTH 和 DATA_FREE,用于快速查看数据库的数据、索引及可回收空间线索。原笔记还汇总了 TABLE_ROWS,但对 InnoDB 来说它通常是估计行数,不能当成精确记录数。
这些列的含义和更新时机取决于存储引擎及统计信息状态;DATA_FREE 也不能直接解释为“执行收缩后必能返还的磁盘容量”。如果先对每张表换算并截断到 MB,再求和,会引入累计截断误差。做容量趋势分析时,先汇总字节再统一换算,并同时核对文件系统、表空间和备份占用。
使用边界
- 只读查询也可能暴露库名、表名与规模。分享结果前应脱敏。
- 原查询未在目标数据库运行;具体值要按目标 MySQL 版本、存储引擎和统计更新时间复核。
- 容量规划不能只依据
information_schema.tables的一次采样。