记载是按照行来存储的,但是数据库的读取并不以行为单位,否则一次读取(也就是一次IO操纵),只能处理处罚一行数据,服从会非常低。
03 02 01 /变长字段长度列表,逆序/注意1:InnoDB每行有隐藏列TransactionID和Roll Pointer。
00 /NULL标志位,第一行没有NULL值/
00 00 10 00 2c /Record Header,固定5字节长度/
00 00 00 2b 68 00 /RowID InnoDB自动创建,6字节/
00 00 00 00 06 05 /TransactionID/
80 00 00 00 32 01 10 /Roll Pointer/
61 /列1数据'a'/
62 62 /列2数据'bb'/
62 62 20 20 20 20 20 20 20 20/列3数据'bb'/
63 63 63 /列4数据'ccc'/
03 01 /变长字段长度列表,逆序/第三行有NULL值,因此NULL标志位不再是00而是06,转换成二进制为00000110,为1的值代表第2列和第3列的数据为NULL。在厥后存储列数据的部分,用户会发现没有存储NULL列,而只存储了第1列和第4列非NULL的值。
06 /NULL标志位,第三行有NULL值/
00 00 20 ff 98 /Record Header/
00 00 00 2b 68 02 /RowID/
00 00 00 00 06 07 /TransactionID/
80 00 00 00 32 01 10 /Roll Pointer/
64 /列1数据'd'/
66 66 66 /列4数据'fff'
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |