怎样使用mysql innodb查看索引高度
这期内容当中小编将会给大家带来有关怎样使用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查看索引高度了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。