查看employee_1表

desc employee_1


innodb的B+TREE层数_mysql


总条数

select count(*) from employee_1

innodb的B+TREE层数_二级索引_02

查看information_schema中相关表信息

注意索引的PAGE_NO和:index_id

SELECT b.name, a.name, index_id, type, a.space, a.PAGE_NO 
FROM information_schema.INNODB_SYS_INDEXES a, information_schema.INNODB_SYS_TABLES b
WHERE a.table_id = b.table_id AND a.space <> 0 and b.name='king/employee_1'

innodb的B+TREE层数_mysql_03


查看innodb页大小

show global variables like 'innodb_page_size';

innodb的B+TREE层数_十六进制_04


表空间目录

/var/lib/mysql/king

# -s  从偏移量开始输出
# -n 前10个字节
hexdump -s 49216 -n 10 ./employee_1.ibd


000c040 0200 0000 0000 0000 6600
000c04a


可以发现 主键索引(PRIMARY)的PAGE_LEVEL 为 0200,表示这棵二级索引树的高度为 3

注:hexdump中49216,这个数分别对应employee_1表的索引

公式是 page_no * innodb_page_size + 64

PRIMARY:(16384*3)+64=49216 

同时可以观察hexdump结果中的6600,此数十六进制为66,转换成十进制为:102,分别和information_schema中的index_id对应上了.


参考文档