如何获取InnoDB树的高度

  • 时间:
  • 浏览:1

page_level是2,很多很多很多很多这种 树强度是page_level+1=3;

接下来亲们用hexdump工具,查看表空间文件指定偏移量上的数据:

亲们的表一共是3层。

里边算的不对,人肉算也没达到这种 强度。也将会是我没人理解作者的意思,没人用对公式。没人根据结合前面的Innodb页特性,如何正确的获取数的强度呢?继续拿这种 表举例子:

primary key的强度是3,其他索引的前要看上表。

另外根据《InnoDB存储引擎》中描述在根页的64偏移量位置前三个 字节,保存了page level的值,已经 亲们想要的page level的值在整个文件中的偏移量为:16384*3+64=49152+64=49216,前三个 字节中。

将会通过二级索引查找记录最多需最少有几个次IO呢?



从里边的图中前要看出需最少:

从二级索引找到主键+主键找到记录,比如二级索引有3层,聚簇索引有3层,没人最多花费的IO次数是:3+3=6

将会主键索引B+树的根页在整个表空间文件中的第三个 页刚开始,全前要算出它在文件中的偏移量:16384*3=49152(16384为页大小)。

通常一棵B+树前要存放有几个行数据?

前一天研究了半天:

https://www.percona.com/blog/30009/04/28/the_depth_of_a_b_tree/

http://code.openark.org/blog/mysql/the-depth-of-an-index-primer

根据

姜承尧 《MySQL技术内幕:InnoDB存储引擎》

姜承尧 http://www.innomysql.com/查看-innodb表中每个的索引强度/

https://blog.jcole.us/2013/01/10/btree-index-structures-in-innodb/?spm=a2c4e.11153940.0.0.77d994fcZH1hIv

page_level是2,B+树强度为page level+1=3

作为DBA了解InnoDB的页组织最好的办法是最基础的,在实际工作中,免不了会评估SQL会消耗有几个IO,如何评估呢?

作为InnoDB表和树的强度将会强度有关系。