InnoDB行格式
- Compact
- Redundant
- Dynamic
- Compressed
CREATE TABLE 表名 (列的信息) ROW_FORMAT=行格式名称
ALTER TABLE 表名 ROW_FORMAT=行格式名称
Compact
- 变长字段长度列表(逆序)
所占空间计算规则如下:
W:定义表时的字符集对应占用字节
M:varchar(M)
L:存储的字符串占用的字节数
如果M×W < 256,那么使用1个字节来表示真正字符串占用的字节数。
如果M×W >= 256,则分为两种情况:
如果L < 128,则用1个字节来表示真正字符串占用的字节数
如果L >= 128,则用2个字节来表示真正字符串占用的字节数
举例:表A字符集为ascii,列name varchar(256), 添加记录name值占用字节数128,则变长字段占用字节数为2
M:256,因为varchar(256)
W:1,因为ascii占用1字节,utf8占用3字节,gbk占用2字节
L:128,name值
- NULL值列表
MySQL规定NULL值列表必须用整数个字节的位表示,如果使用的二进制位个数不是整数个字节,则在字节的高位补0。
举例:表列c1、c2、c3允许为null值,假如插入记录只有c2、c3值为null,则为00000110
- 记录头信息