MySQL中'' ' ' NULL在Innodb存储的区别
source link: http://mp.weixin.qq.com/s?__biz=MjM5NzAzMTY4NQ%3D%3D&%3Bmid=2653933061&%3Bidx=1&%3Bsn=2c5da332eb34924b928c8a3aa9420943
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
导读 :
作者:高鹏(网名八怪),《深入理解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)
点“在看”给我一朵小黄花
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK