MySQL中一组innoDB行占用的字节数

时间:2013-03-18 16:08:12

标签: mysql innodb

我想知道是否有办法测量一定数量的行占用磁盘的字节数,考虑到某些列是varchars的事实。

非常感谢,

维拉德

2 个答案:

答案 0 :(得分:0)

要测量磁盘上行占用的字节数,您必须知道每种数据类型需要多少磁盘空间。

<强>文档
Data Type Storage Requirements
The CHAR and VARCHAR Types

示例:
表由2个字段组成(BIGINT字段和VARCHAR(400)字段)。 BIGINT字段将始终使用8个字节。 VARCHAR字段使用2个字节+实际存储的字符数 因此,如果一个记录存储300个字符,则此记录使用的总字节数将为:8 + 2 + 300 = 310字节

  

与CHAR相比,VARCHAR值存储为1字节或2字节   长度前缀加数据。长度前缀表示数量   值中的字节数。如果值不需要,则列使用一个长度字节   超过255个字节,如果值可能需要多于两个长度字节   255个字节。

答案 1 :(得分:0)

阅读The physical structure of records in InnoDB和我InnoDB系列中的其他文章可能会有用。如果您提供了表格架构(来自SHOW CREATE TABLE),我也很乐意将其作为示例。不幸的是,实际上没有办法测量MySQL内置的物理行大小。