当前位置: 首页 > news >正文

B树与B+树在MySQL中的应用:索引

数据结构演示网站:Data Structure Visualization

先来了解两个数据结构B树与B+树

B树:

        N阶B树每个节点最多存储N-1个Key,N个指针

        例如:一个5阶B树,当前节点存储到5个Key时,中间的数会向上分离,形成新节点

        

         结果如下:B树是多路平衡搜索树,进行了自平衡

B+树:

数据仅存储在叶子节点,内部节点仅保存键和子节点指针。所有查询必须走到叶子节点才能获取数据。

叶子节点通过双向链表串联。

B树与B+树区别:

        1.数据存储:

                B树:每个节点都有Key和数据

                B+树:只有叶子结点有数据

        2.结构:

                B树:节点独立,查找时需要回溯

                B+树:基于双向链表

        3.查询: 

                B树:可能提前查找结束,时间不稳定

                B+树:每次都走到叶子结点,时间稳定

索引分类:

        按数据结构分类:

                ①B+树索引:基于平衡多路搜索树,用于查询和排序

                ②哈希索引:基于哈希表,用于精准查询

                ③全文索引:基于倒排索引,用于全文检索

                ④R树索引:使用空间数据,用于地理位置信息

        按存储方式分类:

                ①聚簇索引:数据存储在叶子结点,索引即数据,减少回表,效率高,只能有一个

                ②非聚簇索引(二级索引):数据地址存储在叶子结点,当需要完整数据时需要回表,增加I/O操作,可以创建多个

http://www.dtcms.com/a/79469.html

相关文章:

  • 华为OD机试-租车骑绿道-双指针(Java 2023 B卷 100分)
  • 【二分查找 并集查找】P6004 [USACO20JAN] Wormhole Sort S|普及+
  • vector和list的区别是什么
  • Golang 老题,生产者和消费者模型,先后关闭通道的问题
  • k8s主要控制器简述(二)DaemonSet|Job|CronJob
  • 蓝桥杯备考----》暴力枚举---金盏花
  • springboot实现文件上传到服务器上,并通过url访问
  • Spring Boot + Spring Integration整合MQTT打造双向通信客户端
  • flowable适配达梦7 (2.1)
  • 【C++】:使用ACL给你的文件夹加锁
  • 直线画法-Bresenham‘s algorithm原理和最优实现
  • SSRF 攻击与防御:从原理到落地实践
  • 什么是Ecovadis认证(埃科瓦迪斯认证)?​Ecovadis认证(埃科瓦迪斯认证)的等级划分!
  • 【Zephyr】【二】学习笔记【RTOS系统架构】
  • VLAN综合实验
  • Linux|fork命令及其使用的写时拷贝技术
  • HyperAD:学习弱监督音视频暴力检测在双曲空间中的方法
  • id: ‘dev.flutter.flutter-plugin-loader‘, version: ‘1.0.0‘怎么解决
  • The Illustrated Stable Diffusion
  • [贪心算法]买卖股票的最佳时机 买卖股票的最佳时机Ⅱ K次取反后最大化的数组和 按身高排序 优势洗牌(田忌赛马)
  • 基础篇结束纪念——Java抽象类 模板类 static接口
  • 基于springboot的校园周边美食探索及分享平台(021)
  • 基于生成对抗网络(GAN)的图像超分辨率重建:技术与应用
  • 【深度】JADC2的层级结构以及全域Mesh网络
  • K8S集群新增和删除Node节点(K8s Cluster Adds and Removes Node Nodes)
  • 【动态规划】矩阵连乘问题 C++(附代码实例和复杂度分析)
  • 3. 轴指令(omron 机器自动化控制器)——>MC_SetOverride
  • react 常用插件
  • axios 请求的底层依赖是什么?
  • 系统思考—啤酒游戏经营决策沙盘模拟