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、表膨胀与碎片,结果仅供参考。

相关工具