mysql-innodb存储引擎主键索引叶子结点数据结构(非单纯的双向链表)
我们应该清楚行记录是放在页中的。
compact行记录格式:
主要介绍几个比较重要的参数
record_type: 0 表示普通类型(叶子结点),1表示B+树的非叶子节点 ,2 表示最小记录,3表示最大记录。
同页之间的行记录是通过next_record指针建立单向链表数据结构,这种建立联系存在于叶子结点和非叶子结点。
页的两个重要字段
页头信息(Page Header):每个页都有一个占用38个字节的File Header,其中包含了指向前后叶子节点页的指针(FIL_PAGE_PREV和FIL_PAGE_NEXT,各占4个字节)。这样,所有的叶子节点页就形成了一个双向链表,支持高效的范围扫描操作。
原理图:
准确解释:页内数据项是单向链表,页之间是双向链表。