美文网首页
如何查看MySQL中索引树的高度?

如何查看MySQL中索引树的高度?

作者: 月饮沙 | 来源:发表于2021-06-11 15:54 被阅读0次

奇怪的知识增加了

查看索引树的高度

查看索引的ROOT页

mysql> 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;

+----------------------------------------+----------------------------+----------+------+-------+---------+
| name                                   | name                       | index_id | type | space | PAGE_NO |
+----------------------------------------+----------------------------+----------+------+-------+---------+
| mysql/engine_cost                      | PRIMARY                    |       41 |    3 |    23 |       3 |
| mysql/gtid_executed                    | PRIMARY                    |       37 |    3 |    18 |       3 |
...
+----------------------------------------+----------------------------+----------+------+-------+---------+

查看索引在.ibd文件中的偏移量

PAGE_LEVEL在每个页的偏移量64位置处,占用两个字节

# 查看engine_cost表的PRIMARY索引偏移位置 
mysql> SELECT @@INNODB_PAGE_SIZE*3 + 64;
+---------------------------+
| @@INNODB_PAGE_SIZE*3 + 64 |
+---------------------------+
|                     49216 |
+---------------------------+
1 row in set (0.00 sec)

使用hexdump工具查看文件内容

[root@mysqltset mysql]# cd /data/mysql3306/data/mysql
[root@mysqltset mysql]# hexdump -s 49216 -n 10 -C engine_cost.ibd
0000c040 00 00 00 00 00 00 00 00 00 29 |.........)|
0000c04a
00 00 表示索引树高度为1
相应的
00 01 表示索引树高度为2
00 02 表示索引树高度为3

hexdump命令

hexdump主要用来查看“二进制”文件的十六进制编码
它能够查看任何文件,不限于二进制文件

选项

  • -n length:格式化输出文件的前length个字节
  • -C:输出规范的十六进制和ASCII码
  • -s:从偏移量开始输出

参考文档

查看 InnoDB表中每个的索引高度

相关文章

  • 如何查看MySQL中索引树的高度?

    奇怪的知识增加了 查看索引树的高度 查看索引的ROOT页 查看索引在.ibd文件中的偏移量 PAGE_LEVEL在...

  • mysql 查询优化

    参考文章:mysql 如何优化left joinmysql 创建索引和删除索引mysql 查看索引 查看字符编码

  • 为什么设计一张独立的表存储扩展字段

    mysql引擎 ** mysql 使用了B+树和聚簇索引 **聚簇索引:索引文件和数据文件存储在同一份文件中,树中...

  • MYSQL8.0使用指南

    主要讲述Mysql为什么使用B+树、如何查看执行计划以及索引为什么没有命中等数据库执行过程中的行为http://w...

  • MySQL--索引

    MySQL索引 查看索引 创建索引 创建唯一索引 创建主键索引 删除索引 删除主键 MySQL视图 创建视图 删除...

  • 查看MySQL表索引 & 外键

    参考:mysql查看表索引

  • 5.数据库索引

    回表:回到主键索引树搜索的过程。 如何优化索引避免回表过程? 1. 覆盖索引: mysql> create tab...

  • Mysql B+数的优点、聚簇索引和非聚簇索引的区别、乐观锁和悲

    Mysql使用B+数的优点: 非叶子节点只有索引,没有数据,可索引的范围更广,降低树的高度,查询速度更快。 数据只...

  • Mysql索引简明教程

    在绝大多数情况下,Mysql索引都是基于B+树的,而索引可以提高数据查询的效率。 但是Mysql是如何利用B+树进...

  • Mysql索引分类

    在绝大多数情况下,Mysql索引都是基于B+树的,而索引可以提高数据查询的效率。但是Mysql是如何利用B+树进行...

网友评论

      本文标题:如何查看MySQL中索引树的高度?

      本文链接:https://www.haomeiwen.com/subject/cvqveltx.html