2. 如果字段的值为NULL (行Header和字段值都发生变化)
2.1 创建测试数据
基于上面例子的数据,我们将第一行第三个字段的数据更新为空:
update heyf_5 set addr = null where id=12 ;
system hexdump /opt/mysql/data/test/heyf_5.MYD ;
0000000 0cf9 0000 6800 6679 2020 2020 2020 2020
0000010 2020 2020 2020 2020 2020 2020 2020 2020
0000020 2020 f120 000d 0000 7473 7665 6e65 2020
0000030 2020 7473 6572 7465 322d 2020 2020 2020
0000040 2020 2020 2020
我们取出第一行的数据来看:
ROW1:0cf9 0000 6800 6679 2020 2020 2020 2020 2020 2020 2020 2020 2020 2020 2020 2020 2020 20
转换一下:
f9 0c 00 00 00 68 79 66 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
其中:
-------------------------------------------
f9 : 标志位发生了变化: 1111 1001 ,其中的"100"表明第三个字段为NULL.
0c 00 00 00 : 第1个字段未发生变化
68 79 66 20 20 20 20 20 20 20 : 第2个字段未发生变化
20 ....... 20 : 第3个字段都被置为了空.
-------------------------------------------