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

MYSQL索引的底层数据结构

MYSQL索引

啥是索引,为什么要用索引,怎么用,为什么要用

索引:就好像查字典一样,通过偏旁部首,声母韵母这种方式去查某个字,会让你的效率更高更快。

在mysql中,索引是一种数据结构,他的功能和查字典没啥两样,主要就是让数据检索的效率更快。

Mysql索引的数据结构的选择:

  1. 不是说hash查找的时间复杂度是o(1),为什么不使用哈希查找?

因为一般来说我们存储的数据都是范围的存储,数据的左右多少都是有点关系的,但是哈希查找不是这样的,他说通过计算哈希值,把每个数据放到某个位置去,他不支持范围查找数据的关联系比较弱。

  1. 为什么不使用二叉搜索数

因为最坏的情况下,二叉搜索树可能会退化成一个单分支的数,这个时候的二叉搜索树其实和单链表没啥区别了时间复杂度都是o(n),并且数据库的数据是保存在磁盘上的,也就是相当于每次访问一个数据都要发生一次磁盘oi(开关)。

  1. 为什么不使用N叉数(B树)

时间复杂度o(logn)

树的高度被有效控制,查询数据的次数变少了,数据库的效率也提升了,为什么不使用呢,是因为有更好的B+树

4为什么索引选择了使用B+树(面试题)

B+树,时间复杂度是o(logn);

仔细观察这个B+树和B树

这两棵树有什么区别吗?

  1. B+树的所有叶子节点之间相当于一个双向循环列表,通过其中的任意一个元素都能找到他的兄弟节点。
  2. 非叶子节点保存的只是对子节点的引用,所有的真实数据都保存在叶子节点中。
  3. B+树和B树,在树高都一样的情况下,查找任一元素都时间复杂度都一样,性能更加均衡。
http://www.dtcms.com/a/618523.html

相关文章:

  • 进程等待
  • 【数学速通】初中高中数学完整内容体系总结
  • 哪个网站做推销产品oshin wordpress
  • 网站qq获取大连在哪个省
  • 高职图书馆网站建设大赛wordpress 图片 存储
  • jEasyUI 设置排序指南
  • IconCache文件
  • Linux进程读写管道的行为详解
  • 零基础学做网站视频上传网站如何做
  • 仿RabbitMQ实现消息队列(三)--muduo介绍与使用
  • 4-Linux驱动开发-字符设备驱动
  • 专业网站建设平台郑州房产网
  • 43 全选,单选
  • stm32f103c8t6寄存器点灯法
  • 【Linux】计算机如何管理软硬件
  • 利用DuckDB列表一句SQL输出乘法口诀表
  • 兴宁网站设计凡客的官网
  • 大模型-Vllm 启用多模态数据-3
  • 集团网站建设定制网站建设中企动力是怎么建设网站的
  • Shell脚本猜数字,使用判断提示用户比目标数字是大还是小
  • 【开题答辩全过程】以 基于安卓的校园二手物品为例,包含答辩的问题和答案
  • 内测检测vs第三方软件检测的差异解析
  • 【科研绘图系列】R语言绘制多组条形图图(barplot)
  • Linux-线程
  • 最专业网站建设公备案域名是什么意思
  • SQL 约束
  • 创立一个网站要多少钱上海公司做网站的
  • MoE算法深度解析:从理论架构到行业实践
  • 【2025CVPR 异常检测方向】DFM: Differentiable Feature Matching for Anomaly Detection
  • 北京西站地铁是几号线做网站贵