Innodb下null '' ' '的存储表现有什么不同

数据库   2024年03月29日 23:38  

小编给大家分享一下Innodb下null '' ' '的存储表现有什么不同,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

:nullbits 位图上的区别。

‘’:可变字节多一个字节。

‘ ‘:可变字节多一个字节且实际数据区域为0X20多一个字节。

如下语句:

mysql>showcreatetabletestnull1\G***************************1.row***************************Table:testnull1CreateTable:CREATETABLE`testnull1`(`id`int(11)DEFAULTNULL,`name`varchar(20)DEFAULTNULL,`name1`varchar(10)DEFAULTNULL)ENGINE=InnoDBDEFAULTCHARSET=latin11rowinset(0.00sec)mysql>insertintotestnull1values(1,'gaopeng','gaopeng');QueryOK,1rowaffected(0.22sec)mysql>insertintotestnull1values(1,'','gaopeng');QueryOK,1rowaffected(0.22sec)mysql>insertintotestnull1values(1,null,'gaopeng');QueryOK,1rowaffected(0.22sec)mysql>insertintotestnull1values(1,'','gaopeng');QueryOK,1rowaffected(0.22sec)mysql>select*fromtestnull1;+------+---------+---------+|id|name|name1|+------+---------+---------+|1|gaopeng|gaopeng||1||gaopeng||1|NULL|gaopeng||1||gaopeng|+------+---------+---------+4rowsinset(0.00sec)

主要观察第2,3,4行。

第二行:

07 00:2字节可变字段长度,第二个00代表name 字段的长度,这里’’长度是000: null位图0000180025:fixed extrasize0000012065100000000ec9e9b1000014210110:rowid+trx_id+rollback_ptr80000001:数据167616f70656e67:数据‘gaopeng’

第三行

07:1字节可变长度02:null位图0000200026:fixed extrasize0000012065110000000ec9eeb4000014060110:rowid+trx_id+rollback_ptr80000001:数据167616f70656e67:数据‘gaopeng’

第四行

0701:2字节可变长度,01代表是name字段长度00:null位图000028ff78:fixed extrasize0000012065120000000ec9f0b6000014040110:rowid+trx_id+rollback_ptr80000001:数据120:数据’ ‘67616f70656e67:数据‘gaopeng’

看完了这篇文章,相信你对“Innodb下null '' ' '的存储表现有什么不同”有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

域名注册
购买VPS主机

您或许对下面这些文章有兴趣:                    本月吐槽辛苦排行榜

看贴要回贴有N种理由!看帖不回贴的后果你懂得的!


评论内容 (*必填):
(Ctrl + Enter提交)   

部落快速搜索栏

各类专题梳理

网站导航栏

X
返回顶部