mysql的索引原理

目录

    • 一、索引采用B+树的优势
    • 二、为什么不使用其他数据结构
      • 2.1、哈希索引
      • 2.2平衡二叉树
      • B树
  • 参考

mysql索引采用B+树

一、索引采用B+树的优势

在这里插入图片描述

1可以进行范围查找,通过单向链表解决(通过单向链表已经排好序)。
2非叶子结点只存储key,不存储value;叶子结点同时存储key,value

二、为什么不使用其他数据结构

2.1、哈希索引

1哈希索引适合等值查询,无法进行范围查询
2哈希索引无法进行排序

2.2平衡二叉树

1随着树的高度增加,查找速度变慢
2如果要查找id>5的结点,可以看到还要往上查找父结点,效率低。
在这里插入图片描述

B树

在这里插入图片描述
1比起AVL树而言,解决了高度的问题。
2同样存在AVL树要查找id>5的结点,可以看到还要往上查找父结点,效率低。

参考

B站《MySQL索引数据结构为什么使用B+树》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/313611.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

最新解决msvcr100.dll丢失的方法,多种解决方法详细解析

msvcr100.dll丢失会导致某些程序或游戏无法正常运行,msvcr100.dll是Microsoft Visual C 2010的运行时组件,它包含了许多C标准库的函数实现。这些函数在程序运行时被调用,用于处理各种任务,如字符串操作、数学计算、文件操作等。因…

openGauss学习笔记-182 openGauss 数据库运维-升级-升级前准备与检查

文章目录 openGauss学习笔记-182 openGauss 数据库运维-升级-升级前准备与检查182.1 升级前准备与检查清单182.2 收集节点信息182.3 备份数据182.4 获取升级包182.5 健康检查182.5.1 前提条件182.5.2 操作步骤 182.6 检查数据库节点磁盘使用率182.7 检查数据库状态182.7.1 验证…

Unity坦克大战开发全流程——游戏场景——游戏界面——设置界面复用

游戏场景——游戏界面——设置界面复用 先将开始场景当中的设置面板复制过来 由于设置面板挂载的脚本都是相同的,在BeginScene中关闭设置面板时不会报空,而在GameScene中关闭设置面板时却会报空,这是因为监听事件中的单例模式调用的实例是Beg…

LabVIEW开发滚动轴承故障诊断系统

LabVIEW开发滚动轴承故障诊断系统 在工业自动化和机械维护领域,滚动轴承的故障诊断是至关重要的。开发了一个基于LabVIEW的振动信号分析系统。这一系统集成了先进的信号处理技术,如经验模式分解(EMD)、Morlet小波滤波器和隐Marko…

SuperMap iClient3D for WebGL实现浮动点效果

文章目录 前言一、update方法二、创建实体点三、效果 前言 基于SuperMap iClient3D for WebGL实现浮动点效果,原理就是不断改变实体的高度,这里我们选择使用CallbackProperty来实现。 一、update方法 var cc 0 var dd truevar update function() {i…

java maven项目添加oracle jdbc的依赖

一般添加依赖是直接在pom.xml中添加配置即可,Maven会自动获取对应的jar包,但是oracle驱动依赖添加后会显示红色,代表找不到依赖项,是因为Oracle授权问题,Maven3不提供Oracle JDBC driver,为了在Maven项目中…

SpringBoot快速集成多数据源(自动版)

有些人因为看见所以相信,有些人因为相信所以看见 有目录,不迷路 前期准备实现演示参考 最近研究了一下多数据源,这篇博客讲的是简单模式,下篇博客预计写自动切换模式 前期准备 本篇博客基于SpringBoot整合MyBatis-plus&#xff0…

IoT 物联网常用协议

物联网协议是指在物联网环境中用于设备间通信和数据传输的协议。根据不同的作用,物联网协议可分为传输协议、通信协议和行业协议。 传输协议:一般负责子网内设备间的组网及通信。例如 Wi-Fi、Ethernet、NFC、 Zigbee、Bluetooth、GPRS、3G/4G/5G等。这些…

前端八股文(CSS篇)二

目录 1.css中可继承与不可继承属性有哪些 2.link和import的区别 3.transition和animation的区别 4.margin和padding的使用场景 5.::before和:after的双冒号和单冒号有什么区别? 6.display:inline-block什么时候会显示间隙 7…

【十二】【动态规划】446. 等差数列划分 II - 子序列、647. 回文子串、5. 最长回文子串,三道题目深度解析

动态规划 动态规划就像是解决问题的一种策略,它可以帮助我们更高效地找到问题的解决方案。这个策略的核心思想就是将问题分解为一系列的小问题,并将每个小问题的解保存起来。这样,当我们需要解决原始问题的时候,我们就可以直接利…

基础算法(7):离散化和区间合并

1.离散化 离散化是一个很好用的技巧,可以很大程度上降低时间和空间复杂度 离散化是把无限空间中有限的个体映射到有限的空间中去,减少空间的使用。 比如:我们有一组很大的数据 :1 3 277438 2884821 428 239823128 如果我们…

AI时代系列丛书(由北京大学出版社出版)

前言 在AI时代,程序员面临着新的机遇和挑战。为了适应这个快速发展的时代,掌握新技能并采取相应的应对策略是至关重要的。 对于办公人员或程序员来说,利用AI可以提高工作效率。例如,使用AI助手可以帮助自动化日常的重复性工作&a…