这期内容当中小编将会给大家带来有关怎样使用mysql innodb查看索引高度,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

首先获取表上的索引情况

mysql>SELECTb.name,a.name,index_id,type,a.space,a.PAGE_NOFROMinformation_schema.INNODB_SYS_INDEXESa,information_schema.INNODB_SYS_TABLESbWHEREa.table_id=b.table_idANDa.space<>0andb.name='ming/test02';+-------------+---------------+----------+------+-------+---------+|name|name|index_id|type|space|PAGE_NO|+-------------+---------------+----------+------+-------+---------+|ming/test02|PRIMARY|71|3|44|3||ming/test02|idx_test02_c2|400|0|44|39|+-------------+---------------+----------+------+-------+---------+2rowsinset(0.85sec)

type:

0 是非唯一二级索引。

3是聚簇索引。

1是automatically generated clustered index (GEN_CLUST_INDEX);

2是unique nonclustered index;唯一的非聚簇索引

32是全文索引。

查询innodb页的大小

mysql>showglobalvariableslike'innodb_page_size';+------------------+-------+|Variable_name|Value|+------------------+-------+|innodb_page_size|16384|+------------------+-------+1rowinset(0.67sec)

接下来要用到操作系统命令hexdump,以十六进制查看文件

语法

hexdump[选项][文件]...

选项

-nlength只格式化输入文件的前length个字节。-C输出规范的十六进制和ASCII码。-b单字节八进制显示。-c单字节字符显示。-d双字节十进制显示。-o双字节八进制显示。-x双字节十六进制显示。-s从偏移量开始输出。-e指定格式字符串,格式字符串包含在一对单引号中,格式字符串形如:'a/b"format1""format2"'。

查看索引高度

[root@mdb01ming]#hexdump-s49216-n10./test02.ibd000c04002000000000000004700000c04a[root@mdb01ming]#hexdump-s639040-n10./test02.ibd009c04002000000000000009001009c04a

指定的偏移量的计算公式是page_no * innodb_page_size + 64。

49216 = 3 * 16384 +64.

PAGE_LEVEL 的值为 0200,表示这棵二级索引树的高度为 3(2+1)。

后面的4700和9001是索引的index_id。

操作系统上十六进制转十进制:

[root@mdb01ming]#echo$((0x47))71[root@mdb01ming]#echo$((0x0190))400

9001的读取顺序,应该是按照两位为一组,倒着读,那么也就是01 90

上述就是小编为大家分享的怎样使用mysql innodb查看索引高度了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。