zoukankan      html  css  js  c++  java
  • Innodb主键包含全部列的情况下,如何组织物理页

    很简单,和有不是主键的列的格式一样。

    实验:在 Mysql 8 中 创建一张主键包含全部列的表

     插入 10000 条数据。

    因为是字符串做为主键(为了好辨别),所以大小是按照字典序来的

    使用工具查看叶子节点结构,下面是部分截图,剩下的部分都是 一样的 level 为0的数据页。

    着重看索引叶。也就是 level 为1的B+树叶

    查看索引叶(偏移量为4的数据页):

    发现偏移量为5的数据页,含有的记录的主键最小值是 sss...0bbbbb...0

    偏移量为6的数据页,含有的记录的主键最小值是sss...195bbbb...0 

    sss...N 这里的N是从0~10000

    直接看到第5页的末尾,发现最大的主键值是 aaa...1119bbb...0

    看一下第五页的下一个页是多少

     发现是 11,第11页的最小行记录是:aaa...123bbb...0

    11页是数据页,最小记录确实是112起头

    而112 是 1119 字典序的下一个,所以逻辑正确。虽然第11页和第5页不是物理上连续,但是两者逻辑上通过偏移量指针 5 指向 11 ,建立了逻辑联系。

    并且块之间的主键大小应该是 递增的。

    尽管块内部的主键大小物理可能不是递增。

  • 相关阅读:
    Python_day1
    12/04
    Linux基础笔记
    八:动态规划-未名湖边的烦恼
    七:动态规划-数字三角形
    六:大数运算-减法运算
    五:大数运算-加法运算
    四:大数运算-乘法运算
    三:排序-幸运数字
    二:排序-果园
  • 原文地址:https://www.cnblogs.com/lqlqlq/p/14238123.html
Copyright © 2011-2022 走看看