您好,登錄后才能下訂單哦!
小編給大家分享一下Innodb下null '' ' '的存儲表現有什么不同,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
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’
看完了這篇文章,相信你對“Innodb下null '' ' '的存儲表現有什么不同”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。