奇怪的知识增加了
查看索引树的高度
查看索引的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:从偏移量开始输出
网友评论