1. 首页
  2. IT资讯

Innodb 下null '' ' '的存储表现的不同

欢迎关注我的《深入理解MySQL主从原理 32讲 》,如下:

如果图片不能显示可查看下面链接:
https://www.jianshu.com/p/d636215d767f

今天顺便测试了一下 他们三者是不同的,简单的说就是

  • null :nullbits 位图上的区别。
  • ‘’:可变字节多一个字节。
  • ‘ ‘:可变字节多一个字节且实际数据区域为0X20多一个字节。

如下语句:

  mysql> show create table testnull1 G  *************************** 1. row ***************************         Table: testnull1  Create Table: CREATE TABLE `testnull1` (    `id` int(11) DEFAULT NULL,    `name` varchar(20) DEFAULT NULL,    `name1` varchar(10) DEFAULT NULL  ) ENGINE=InnoDB DEFAULT CHARSET=latin1  1 row in set (0.00 sec)  mysql> insert into testnull1 values(1,'gaopeng','gaopeng');  Query OK, 1 row affected (0.22 sec)  mysql> insert into testnull1 values(1,'','gaopeng');  Query OK, 1 row affected (0.22 sec)  mysql> insert into testnull1 values(1,null,'gaopeng');  Query OK, 1 row affected (0.22 sec)  mysql> insert into testnull1 values(1,' ','gaopeng');  Query OK, 1 row affected (0.22 sec)  mysql> select * from testnull1;  +------+---------+---------+  | id   | name    | name1   |  +------+---------+---------+  |    1 | gaopeng | gaopeng |  |    1 |         | gaopeng |  |    1 | NULL    | gaopeng |  |    1 |         | gaopeng |  +------+---------+---------+  4 rows in set (0.00 sec)  

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

  • 第二行:

07 00:2字节可变字段长度,第二个00代表name 字段的长度,这里’’长度是0
00: null位图
0000180025:fixed extrasize
0000012065100000000ec9e9b1000014210110:rowid+trx_id+rollback_ptr
80000001:数据1
67616f70656e67:数据‘gaopeng’

  • 第三行

07:1字节可变长度
02:null位图
0000200026:fixed extrasize
0000012065110000000ec9eeb4000014060110:rowid+trx_id+rollback_ptr
80000001:数据1
67616f70656e67:数据‘gaopeng’

  • 第四行

0701:2字节可变长度,01代表是name字段长度
00:null位图
000028ff78:fixed extrasize
0000012065120000000ec9f0b6000014040110:rowid+trx_id+rollback_ptr
80000001:数据1
20:数据’ ‘
67616f70656e67:数据‘gaopeng’

可以看到他们的区别

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7728585/viewspace-2650072/,如需转载,请注明出处,否则将追究法律责任。

主题测试文章,只做测试使用。发布者:深沉的少年,转转请注明出处:http://www.cxybcw.com/183970.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code