InnoDB--------查询IOT B+ Tree的高度
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,1. 背景* 在InnoDB存储引擎中,表都是根据主键顺序组织存放的,这种存储方式的表称为索引组织表(index organized table IOT)。* 在InnoDB存储引擎中,每张表都有个主
千家信息网最后更新 2025年11月07日InnoDB--------查询IOT B+ Tree的高度
1. 背景
* 在InnoDB存储引擎中,表都是根据主键顺序组织存放的,这种存储方式的表称为索引组织表(index organized table IOT)。
* 在InnoDB存储引擎中,每张表都有个主键(Primary key),如果在创建表时没有地定义主键,则InnoDB存储引擎会选择表中符合条件的列或隐式创建主键。
2. 环境
mysql> select version();+------------+| version() |+------------+| 5.6.36-log |+------------+1 row in set (0.02 sec)mysql> select database();+------------+| database() |+------------+| mytest |+------------+1 row in set (0.00 sec)mysql> show tables;+------------------+| Tables_in_mytest |+------------------+| customer || district || history || item || new_orders || order_line || orders || stock || warehouse |+------------------+9 rows in set (0.00 sec)mysql> show variables like 'innodb_page_size';+------------------+-------+| Variable_name | Value |+------------------+-------+| innodb_page_size | 8192 |+------------------+-------+1 row in set (0.04 sec)
3. 查询
* 查询每张表primary key对应的root page_no
mysql> select t.table_id table_id, t.name table_name, i.page_no root_page_no from information_schema.INNODB_SYS_INDEXES i, information_schema.INNODB_SYS_TABLES t where i.table_id = t.table_id and i.name = 'PRIMARY' and t.name like 'mytest/%';+----------+-------------------+--------------+| table_id | table_name | root_page_no |+----------+-------------------+--------------+| 22 | mytest/customer | 3 || 21 | mytest/district | 3 || 27 | mytest/item | 3 || 24 | mytest/new_orders | 3 || 26 | mytest/order_line | 3 || 25 | mytest/orders | 3 || 28 | mytest/stock | 3 || 20 | mytest/warehouse | 3 |+----------+-------------------+--------------+8 rows in set (0.04 sec)
* 查询order_line表数据量
mysql> select count(1) from order_line;+----------+| count(1) |+----------+| 6001615 |+----------+1 row in set (9.03 sec)
* 通过表数据文件order_line.ibd获取高度 [跳过 root_page_no * innodb_page_size + 64, 获取2字节长度就是树的高度]
由此可得树的高度为3, 高度标记从0开始
[root@localhost src]# hexdump -s 24640 -n 2 -C /data/mysql_data_6/mytest/order_line.ibd;00006040 00 02 |..|00006042
4. B+Tree
| 高度 | 非叶节点数 | 叶节点数 | 数据行数 | 占用空间 |
| 1 | 0 | 1 | 468 | 16.0KiB |
| 2 | 1 | 1203 | > 563 thousand | 18.8MiB |
| 3 | 1204 | 1447209 | > 677 million | 22.1GiB |
| 4 | 1448413 | 1740992427 | > 814 billion | 25.9TiB |
5. xxx
高度
存储
查询
引擎
数据
点数
字节
就是
文件
方式
条件
标记
环境
由此
空间
索引
背景
长度
顺序
选择
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
魔兽世界服务器丽丽
数据库float 不设置
专利信息中心数据库中检索
暨南大学网络安全复试
软件开发需要用什么程序
电商群控软件开发
网络安全培训教师心得
山东商业软件开发定制价格
刷新服务器管理器时
国家网络安全儿童画
用jq链接数据库做增删改查
南京多功能软件开发使用方法
在数据库中用户名怎么查
怎么给自己写的小说制作数据库
脚本添加到数据库中
卸载数据库提示26003
数据库加密的场景
辐射76联机服务器和数据服务器
传奇数据库字段详解
服务器托管合同范本
数据库默认端口及修改方法
网络安全推荐工具
计算机网络技术与电商
揭阳定制软件开发
网络安全培训教师心得
网络技术工作一月多钱
c 实时数据库
武进区网络安全名单
常州企业软件开发答疑解惑
美团数据库架构