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

MySQL索引概述

目录

概述:

演示:

​编辑索引的优点:

索引的缺点:


概述:

是帮助MySQL高效获取数据的数据结构(有序的)。

演示:

索引的优点:

  • 提高数据检索的效率,降低数据库的IO成本,

  • 通过索引列对数据进行排序,降低数据排序的成本,降低CPU的消耗。

索引的缺点:

  • 索引列也是需要占用空间的。

  • 索引降低了更新表的速度,如对标进行DML语句的使用时效率降低。

MySQL的索引实在存储引擎层实现的,不同的存储引擎有不同的结构。

如果没有特别的指出,基本上都是B+树索引结构。、

为了解决大数据的情况下二叉树和红黑树的层级较深,使得查询的效率降低,我们使用b树来解决这个问题。

b+树的结构:

相较于b-树的区别:b+树的所有数据都会出现在叶子节点并且叶子节点形成一个单向列表。MySQL索引的数据结构对经典的b+树进行了优化,在原b+树的基础上,增加了一个指向相邻叶子节点的链表指针,就形成了带有顺序的b+树:

Hash索引:

- 哈希索引就是采用一定的hash算法,将键值换算成新的hash值,映射到对应的槽位上,让后存储在hash表中。如果多个键值映射到相同相同的槽位上就会产生hash碰撞,可以通过链表解决。![image-20250508210449858](D:%5Cgongju%5CTypora%5Cpicture%5Cimage-20250508210449858.png)

在mysql中支持hash索引的存储引擎Memory引擎,在InnoDB中拥有自适应hash功能,hash索引是存储引擎根据b+树索引在指定条件下自动构建的。

面试问题:

为什么InnoDB存储引擎选择使用b+树索引结构呢?

  • 相对于二叉树来说,层级更少,搜索效率更高。

  • 对于b树来说,无论是叶子节点还是非叶子结点,都会保存数据,这样会导致一页中存储的键值减少,指针跟着减少,同样保存大量的树高度,导致性能降低,同时b+树来说查询更加稳定。

  • 相对于hash索引来说,b+树支持范围匹配以及排序操作。

http://www.xdnf.cn/news/5460.html

相关文章:

  • C/C++复习--C语言隐式类型转换
  • stm32 WDG看门狗
  • MySQL数据库常见面试题之三大范式
  • Python打卡训练营Day22
  • 并发笔记-锁(一)
  • AI 小智代码架构分析
  • 【DNDC模型】双碳目标下DNDC模型建模方法及在土壤碳储量、温室气体排放、农田减排、土地变化、气候变化中的应用
  • Java 中 AQS 的实现原理
  • Problem B: 面向对象综合题2
  • [思维模式-27]:《本质思考力》-7- 逆向思考的原理与应用
  • MySQL的锁
  • 软考第五章知识点总结
  • LeetCode 热题 100 98. 验证二叉搜索树
  • NOR Flash与NAND Flash详解
  • 添加文字标签
  • 第六天:Java数组
  • 最长字符串 / STL+BFS
  • JDS-算法开发工程师-第9批
  • 如何通过管理Windows服务加速电脑启动?
  • TikTok 推广干货:AI 加持推广效能
  • java.util.Timer
  • pycharm更改终端为wsl.exe
  • stm32测频率占空比最好的方案
  • 多智体具身人工智能:进展与未来方向(下)
  • 【计算机视觉】基于Python的相机标定项目Camera-Calibration深度解析
  • 【TI MSPM0】CCS工程管理
  • 雷达工程师面试题目
  • 机械物理:水力发电站工作原理是什么?
  • 最大化效率和性能:AKS 中节点池的强大功能
  • 设计模式简述(十八)享元模式