返回顶部
首页 > 资讯 > 数据库 >InnoDB--------查询IOT B+ Tree的高度
  • 203
分享到

InnoDB--------查询IOT B+ Tree的高度

2024-04-02 19:04:59 203人浏览 薄情痞子
摘要

1. 背景   * 在InnoDB存储引擎中,表都是根据主键顺序组织存放的,这种存储方式的表称为索引组织表(index organized table ioT)。   

1. 背景

   * 在InnoDB存储引擎中,表都是根据主键顺序组织存放的,这种存储方式的表称为索引组织表(index organized table ioT)。

   * 在InnoDB存储引擎中,每张表都有个主键(Primary key),如果在创建表时没有地定义主键,则InnoDB存储引擎会选择表中符合条件的列或隐式创建主键。

InnoDB--------查询IOT B+ Tree的高度


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

高度非叶节点数叶节点数数据行数占用空间
10146816.0KiB
211203> 563 thousand18.8MiB
312041447209> 677 million22.1GiB
414484131740992427> 814 billion25.9TiB

5. xxx

您可能感兴趣的文档:

--结束END--

本文标题: InnoDB--------查询IOT B+ Tree的高度

本文链接: https://lsjlt.com/news/43939.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • InnoDB--------查询IOT B+ Tree的高度
    1. 背景   * 在InnoDB存储引擎中,表都是根据主键顺序组织存放的,这种存储方式的表称为索引组织表(index organized table IOT)。   ...
    99+
    2024-04-02
  • 获取 MySQL innodb B+tree 的高度的方法
    前言 MySQL 的 innodb 引擎之所以使用 B+tree 来存储索引,就是想尽量减少数据查询时磁盘 IO 次数。树的高度直接影响了查询的性能。一般树的高度在 3~4 层较为适宜。数据库分表的目的也是为了控制树...
    99+
    2022-05-11
    MySQL innodb innodb B+tree B+tree 高度
  • mysql详解之B+树的查询时间复杂度
    前言 B+ 树搜索时间复杂度到底是什么(这篇文章分析了全网各种关于b+树时间复杂度相关博客的结论,总结并分析了他们结论差异的原因)。 本文在此基础上,对文中的结论做了进一步思考(如果对解题过程不感兴趣...
    99+
    2023-09-04
    mysql 数据库 b+树
  • 怎样使用mysql innodb查看索引高度
    这期内容当中小编将会给大家带来有关怎样使用mysql innodb查看索引高度,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。首先获取表上的索引情况mysql>&nb...
    99+
    2024-04-02
  • 如何提高mysql的查询速度
    这篇文章主要讲解了“如何提高mysql的查询速度”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何提高mysql的查询速度”吧! ...
    99+
    2024-04-02
  • 如何提高MySQL查询速度
    本篇文章为大家展示了如何提高MySQL查询速度,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。  提高MySQL查询速度有哪些策略  1.表设计一定要优化,冗余数据最...
    99+
    2024-04-02
  • laravel如何提高查询速度
    这篇文章主要介绍“laravel如何提高查询速度”,在日常操作中,相信很多人在laravel如何提高查询速度问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”laravel如何提高查询速度”的疑惑有所帮助!接下来...
    99+
    2023-07-06
  • innodb查询锁的示例分析
    这篇文章主要为大家展示了“innodb查询锁的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“innodb查询锁的示例分析”这篇文章吧。 ...
    99+
    2024-04-02
  • 技术分享 | InnoDB 的索引高度
    作者:洪斌 爱可生南区负责人兼技术服务总监,MySQL  ACE,擅长数据库架构规划、故障诊断、性能优化分析,实践经验丰富,帮助各行业客户解决 MySQL 技术问题,为金融、运营商、互联网等行业客户提供 MySQL 整体解决方案。 本文来...
    99+
    2015-09-25
    技术分享 | InnoDB 的索引高度
  • mongodb单机查询速度怎么提高
    以下是一些可以提高MongoDB单机查询速度的方法:1. 索引优化:创建适当的索引可以大大提高查询性能。在选择索引字段时,需要考虑经...
    99+
    2023-08-31
    mongodb
  • 关于innodb中查询的定位方法
    原创转载请注明出处 源码版本 5.7.14 涉及源码文件 page0cur.cc page0page.h page0page.cc rem0cmp.cc 为什么谈及定位方法,因为在...
    99+
    2024-04-02
  • 教你通过B+Tree平衡多叉树理解InnoDB引擎的聚集和非聚集索引
    目录InnoDB引擎是通过B+Tree实现索引结构二叉树(Binary Tree)平衡二叉树(AVL Tree)平衡多叉树(B-Tree)B+Tree聚集和非聚集索引聚集索引(clu...
    99+
    2024-04-02
  • 【③MySQL 数据查询】:提高查询的效率
    前言 ✨欢迎来到小K的MySQL专栏,本节将为大家带来MySQL数据查询的讲解(基本、分组、排序、聚合、分页、条件查询) 目录 前言一、基本查询二、条件查询三、聚合函数(统计函数)四、分组查询五、排序查询五、分页查询六、总结 ...
    99+
    2023-08-19
    mysql 数据库 sql
  • mysql索引为什么能提高查询速度
    mysql 索引提升查询速度是因为它使用索引结构快速查找和检索数据,消除了逐行扫描的需要。索引就像一本字典,它将数据值关联到记录指针,允许 mysql 直接跳转到相关记录。使用索引可以减...
    99+
    2024-05-21
    mysql mysql索引
  • php查询数组的长度
    PHP是一种服务器端脚本语言,它广泛应用于Web开发中。PHP的数组是一种非常强大和灵活的数据类型,可以轻松地进行排序、过滤、查询和操作。在实际应用中,我们经常需要获取PHP数组的长度信息,以便确定数组中元素的个数。本文将介绍如何使用PHP...
    99+
    2023-05-23
  • MySQL 查询速度慢的原因
    目录一、慢在哪?二、是否查询了不需要的数据1. 查询不需要的记录2. 多表关联时返回全部列3. 总是查询出全部列4. 重复查询相同的数据三、是否扫描了额外的记录1. 响应时间2. 扫描的行数和返回的行数3. 扫描的行...
    99+
    2022-06-01
    MySQL 查询 MySQL 查询速度慢
  • 如何使用Memcache提高PHP开发中的数据查询速度?
    如何使用Memcache提高PHP开发中的数据查询速度?随着现代应用程序的复杂性的提高,数据库查询速度逐渐成为应用程序的瓶颈之一。特别是在高负载情况下,数据库查询操作可能会导致应用程序变慢或出现连接超时。为了解决这个问题,很多开发者开始使用...
    99+
    2023-11-07
    PHP 数据查询 Memcache
  • MySQL优化查询速度的方法
    这篇文章给大家分享的是有关MySQL优化查询速度的方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。如何选择优化的数据类型、如何高效的使用索引,这些对于高性能的MySQL来说是必...
    99+
    2024-04-02
  • 如何提升MySQL的查询速度
    这篇文章主要介绍“如何提升MySQL的查询速度”,在日常操作中,相信很多人在如何提升MySQL的查询速度问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何提升MySQL的查询...
    99+
    2024-04-02
  • mysql的查询缓存及innodb缓存回收机制讲解
    这篇文章主要讲解了“mysql的查询缓存及innodb缓存回收机制讲解”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql的查询缓存及innodb缓存回...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作