MySQL中'' ' ' NULL在Innodb存储的区别
导读 :
作者:高鹏(网名八怪),《深入理解MySQL主从原理32讲》系列文的作者。
想阅读八怪源码文章欢迎订阅
本文建议横屏观看,效果更佳
一、测试环境
我们看到包含了3行,包含了3种情况,下面我们分别分析。
二、解析
原始存储如下:
-
07:第2个字段可变长度7
-
00 : 第1个字段可变长度0
-
00 : NULL位图 没有NULL字段
-
0000100022: 5字节固定
-
00000014061c : ROWID
-
000000002fe5 : TRX ID
-
bb0000016e0110 : ROLL PTR
-
空 : 第一个字段没有存储 字符”
-
67616f70656e67 : 第二个字段 ‘gaopeng’
原始存储如下:
-
07 : 第2个字段可变长度7
-
01 : 第1个字段可变长度1
-
00 : NULL位图 没有NULL字段
-
0000180022 : 5字节固定
-
00000014061d : ROWID
-
000000002fe6 : TRX ID
-
bc000001790110 : ROLL PTR
-
20 : 空字符’ ‘
-
67616f70656e67 : 第二个字段 ‘gaopeng’
原始存储如下:
-
07:第2个字段可变长度7
-
01: NULL位图为为00000001 表示第一个字段为NULL
-
000020ffac : 5字节固定
-
00000014061e : ROWID
-
000000002feb : TRX ID
-
bf0000017c0110 : ROLL PTR
-
空 : 第一个字段NULL
-
67616f70656e67 : 第二个字段 ‘gaopeng’
三、总结
-
”不做存储,但是会记录可变长度的长度为0,NULL位图本位为0。
-
NULL不做实际存储,也不会记录可变长度,但是NULL位图本位为1。
-
‘ ‘ 做存储为0X20,记录可变长度为01,NULL位图本位为0。
如何方便的查看数据文件参考文章: MySQL:如何快速的查看Innodb数据文件
END
识别下方二维码添加作者为好友

扫码加入MySQL技术Q群
(群号: 650149401)
点“在看”给我一朵小黄花