0

我打开MySQL InnoDB引擎的 ibd 文件,被数字的补码弄糊涂了。

对于无符号数,InnoDB 使用不同的表示。

ibd 二进制数据

code '80 05'是innodb page header的PAGE_N_HEAP字段,代表堆记录数,实际值为5,明确是无符号数,但是code '80 05'是怎么来的。

代码'00 03'是InnoDB页头的PAGE_N_RECS字段,代表用户记录的条数,实际值为3,也是无符号数,代码'00 03'可以理解为数字的二进制补码3.

代码'00 00 00 01'和'00 00 00 02'是用户记录id字段,定义为unsigned int,也可以理解为tow的补码。

我的问题是为什么mysql使用'80 05'代表数字5。

4

0 回答 0