我想知道是否有办法测量一定数量的行占用磁盘的字节数,考虑到某些列是varchars的事实。
非常感谢,
维拉德
答案 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内置的物理行大小。