Mysql中变长字段是如何存储的
基本存储方式
变长字段的长度列表,null值列表,数据头,column01的值,column02的值,column0n的值...
变长字段如何存储
- 某行中有一个变长字段
# 假如有三个字段 id,name,age其中name是变长类型(Varchar)
|id|name|age|
|1|wang|18|
磁盘里的存储为:
0x04 null值列表 数据头 1 wang 18
# 其中0x04表示name长度为4
- 多行的数据也是紧挨着存储
# 假如有三个字段 id,name,age其中name是变长类型(Varchar)
|id|name|age|
|1|wang|18|
|2|li|20|
磁盘里的存储为:
0x04 null值列表 数据头 1 wang 18 0x02 null值列表 数据头 2 li 20
- 单行中多个变长字段如何存储
# 假如有三个字段 id,name,desc,age其中name,desc是变长类型(Varchar)
|id|name|desc|age|
|1|wang|shuaige|18|
磁盘里的存储为:
0x07 0x04 null值列表 数据头 1 wang shuaige 18
# 其中0x04表示name长度为4,0x07表示desc的长度为7