MySQL 表空间估算器
按表结构(列类型、字符集、InnoDB 行格式与页大小)、预计行数与二级索引,估算 InnoDB 数据与索引的磁盘占用,辅助容量规划与分库分表决策。
功能特性
InnoDB 感知
基于 InnoDB 行格式、记录头、事务/回滚指针、NULL 位图与变长字段列表估算行内占用。
可配参数
支持 MySQL 版本(5.7/8.0/8.4)、行格式、字符集、页大小与页填充率自定义。
实时估算
增删列与二级索引即时计算数据与索引磁盘占用。
本地计算
所有估算在浏览器本地完成,无需上传表结构。
使用步骤
01设置表级参数
选择 MySQL 版本、行格式、字符集、页大小、行数与填充率。
02定义列
添加并配置列的类型、长度、平均长度、是否可空与是否主键。
03定义二级索引
勾选索引包含的列,并设置是否唯一。
04查看与复制
查看空间构成与优化建议,一键复制评估报告。
适用场景
MySQL 容量规划表结构设计评估分库分表决策索引体积评估InnoDB 存储估算迁移容量预算字符集影响评估
常见问题
估算包含 TEXT/BLOB 的实际数据吗?
不包含。TEXT/BLOB 大值通常存于溢出页,估算仅计入行内约 20 字节前缀;若平均长度较大,总占用需额外加上溢出页。
为什么不同版本结果不同?
版本切换主要影响默认字符集与行格式预设:8.0/8.4 默认 utf8mb4 + DYNAMIC,5.7 默认 COMPACT。行格式与字符集会改变行内字节,从而影响页数。
主键(聚簇索引)怎么计费?
InnoDB 中聚簇索引即数据本身,不单独计费;但二级索引记录会携带主键值,主键越长,所有二级索引体积越大。无显式主键时 InnoDB 使用 6 字节隐藏 row_id。
页填充率有什么作用?
InnoDB 每页无法 100% 装满(预留目录槽、页头尾与碎片),数据页常约 85%+。用它折算页数,可让估算更接近真实磁盘占用。
估算结果准确吗?
估算基于 InnoDB 行结构与页填充率模型,与真实占用接近,但未计入 ibdata、双写缓冲、undo、表膨胀与碎片,结果仅供参考。