Chr*_*wan 2 mysql innodb metadata
我正在尝试决定是否进一步标准化,并且需要知道 InnoDB 中最小的一行可以是多少(我有 MySQL 5.6)。
这并不完全是我的情况,但为了简单起见,我们假设我只有一个代理 PK (bigint) 和两个 TINYINT 列,它们都不能为空。如果我要存储 10 亿个字节,那么每行需要多少字节来存储?
我想每行都需要一些元数据(我知道至少在存在可空列时需要),但似乎找不到有关如何计算它的文档。
那么,页面中的可用空间和页面中的元数据(或者全部一起)会占用多少空间?
我想知道,以便我可以更好地判断何时会有一个足够窄的长表以避免正确的标准化。
InnoDB 中的每一行(假设为 COMPACT 格式)都有以下标头:
然后是主键字段。然后是 6 字节事务 ID 和 7 字节回滚指针。然后是剩余的字段值。
对于给定的行(BIGINT、TINYINT、TINYINT),其大小将为:
因此,每条记录 28 个字节。
但要计算表将占用多少空间,您需要考虑:
查看这些幻灯片以了解更多详细信息 http://www.slideshare.net/akuzminsky/data-recovery-talk-on-pluk
| 归档时间: |
|
| 查看次数: |
610 次 |
| 最近记录: |