初學mysql,對一個compact行存盤有點疑惑
版本5.7.22
建表如下
create table t3(
id varchar(5)
,name varchar(8)
,address varchar(10)
,tel char(13)
,work varchar(20)
) engine=innodb row_format=compact;
資料如下
mysql> select * from t3;
+-------+---------+---------+---------+--------+
| id | name | address | tel | work |
+-------+---------+---------+---------+--------+
| 1 | asd | china | 808 | IT |
| 11 | QWEasdf | US | 3131 | SHOP |
| 33333 | NULL | NULL | NULL | NULL |
| 200 | xyz | uk | 9999999 | driver |
+-------+---------+---------+---------+--------+
4 rows in set (0.00 sec)

問題:在t3.ibd表空間中查看,

藍色框,代表第二行記錄從c0ae開始,計算記錄頭中下一行偏移量為 00 36 (紅色框),即開始于c0e4
但是實際上第三行是從c0e8開始的,(綠色框)
這是為什么?
在第二行的記錄頭中偏移量應該是 00 3a 才對吧,整個第二行占用了58位元組(5+1+5+6+6+7+28=58)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/82804.html
標籤:MySQL
上一篇:讀寫分離資料庫的從庫,在線開啟log_slave_updates=1引數,顯示已經生效,但實際上沒有將資料寫進自身的binlog日志中
下一篇:MYSQL服務無故自動不定時重啟
