4. 如果行被删除了
继续3的例子,我们删除第一行数据:
delete from heyf_5 where id=12;
system hexdump /opt/mysql/data/test/heyf_5.MYD
0000000 ff00 ffff ffff 66ff 2020 2020 2020 7320
0000010 7274 6565 2d74 2031 2020 2020 2020 2020
0000020 2020 ff20 000d 0000 7473 7665 6e65 2020
0000030 2020 7473 6572 7465 322d 2020 2020 2020
0000040 2020 2020 2020
我们发现header的值变成了"00",这就是一个行被DELETE的标志.
但在我们同时注意到,第一行的数据,只有紧跟着Header后面6个字节被置成了'ff',其它数据没有变.
5. 被删除后,空间重复使用
继续4的例子,
insert into heyf_5 values (23,'aaa','bbbb'),(34,'ccc','ddddd');
system hexdump /opt/mysql/data/test/heyf_5.MYD
0000000 17ff 0000 6100 6161 2020 2020 2020 6220
0000010 6262 2062 2020 2020 2020 2020 2020 2020
0000020 2020
ff20 000d 0000 7473 7665 6e65 2020
0000030 2020 7473 6572 7465 322d 2020 2020 2020
0000040 2020 2020 2020
22ff 0000 6300 6363 2020
0000050 2020 2020 6420 6464 6464 2020 2020 2020
0000060 2020 2020 2020 2020 0020
在这里我们看到了,被删除的空间马上得到了填充.