InnoDB--------查询IOT B+ Tree的高度
发表于:2024-11-22 作者:千家信息网编辑
千家信息网最后更新 2024年11月22日,1. 背景* 在InnoDB存储引擎中,表都是根据主键顺序组织存放的,这种存储方式的表称为索引组织表(index organized table IOT)。* 在InnoDB存储引擎中,每张表都有个主
千家信息网最后更新 2024年11月22日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安全错误
数据库的锁怎样保障安全
服务器运维工程师招聘
多账户登陆数据库
广州俊科网络技术有限公司
psql链接数据库
绍兴第三方软件开发
数据库1406错误什么意思
如何正确选择gpu服务器
最快的软件开发方法
搭建青龙面板是什么服务器
网络安全局唐鑫
长城钻探公司软件开发
接入数据库技术
简述四种数据库访问技术
成都平民网络技术有限公司
软件开发如何并行加速
软件开发算技术吗
同济大学软件开发研究生
linux重启mysql数据库
网络安全考核责任办法
农行 软件开发 笔试
ftp服务器 负载均衡
自媒体软件开发多少钱
县级种植数据库
浏阳网络安全管理
现代通信网络技术6
深圳优客网络技术有限公司
各种网络安全设备巡检报告汇总
网络运维和软件开发学哪个
服务器文档安全
兰州交通大学计算机网络技术