【MySQL】索引

【MySQL】索引

个人主页♡喜欢做梦

欢迎  👍点赞  ➕关注  ❤️收藏  💬评论


 

目录

🍀一、什么是索引

🍀二、为什么要使用索引?

🍀三、索引的分类

🌺哈希索引

🌺二叉搜索树

🌺N叉树

🌳B树

🌳B+树

🌳B+树与B树的区别


🍀一、什么是索引

MySQL 是索引的一种数据结构,他可以帮助数据库高校的查询、更新数据表中的数据。通过一定的排序规则排列数据表中的记录,加快对表的查询。索引一般是书籍、文献等,按照一定规则编排,方便查找特定内容的目录工具。例如,你在一个表格里面要查找自己的名字,你不同自己一行一行去看,直接在搜索栏里面搜索自己的名字。

🍀二、为什么要使用索引?

可以提高查询效率:减少数据库在执行查询需要扫描的数据量。在大量的数据中,如果没有索引需要扫描整个表,如果有了索引,那么可以快速定位。实现数据库的唯一约束:通过创建唯一索引,可以确保表中某列或某组列的数据值具有唯一性。在“学生表”中,将“学生学号”列创建唯一索引,可以防止学号重复,确保数据的准确性和完整性。支持数据的排序和分组操作:数据库在进行排序和分组操作时,如果相关列上有索引,数据库可以利用索引的有序性来高效完成这些操作,而无需额外的排序操作,从而提高查询性能。优化连接操作:在多表连接查询时,索引可以帮助数据库更快的找到连接。 

🍀三、索引的分类

🌺哈希索引

  1. 结构特点:基于哈希表实现,通过索引键的哈希值直接定位数据位置,类似字典的“键-值”映射。
  2. 优势:时间复杂度为O(1),查找速度快
  3. 局限性:1.主要:不支持范围查找、排序和模糊查询;2.哈希冲突影响性能;3.MySQL并没有选择哈希作为默认数据结构,仅Memory默认支持。

🌺二叉搜索树

1.定义:二叉搜索树是一种特殊的二叉树,性质:

  • 其左子树中所有节点的值均小于根节点的值;
  • 其右子树中的所有节点的值均大于根节点的值;
  • 左右子树本身也是二叉搜索树(递归定义)。 

 2.结构特点

  • 每个节点最多有两个子节点(左孩子、右孩子);
  • 中序遍历得到的结果是有序递增的,便于快速查找

3.优势:

  •  查找效率:理想情况下,插入、删除、查询时间复杂度为O(log2n);
  • 实现简单:逻辑简单,适合数量较小的场景。

4.局限性:

  • 最坏情况下时间复杂度为O(n),BST退化为单链表时,时间复杂度为O(n);
  • 节点个数过多无法保证树高。磁盘效率低,磁盘IO是制约数据库性能的主要性能。
  • 范围查询效率低,需要遍历多个节点。

🌺N叉树

1.定义:N叉树是每个节点最多有N个子节点(N>2)的树形结构,N的取值根据场景而定。

2.结构特点:

  • 每个节点包含多个关键字和对应的子节点指针,关键字按顺序排序;

3. 优势:

  • 降低树的深度:在相同数据量的情况下,可以有效控制树高,N越大,层级越少,大幅减少磁盘IO次数。
  • 高效支持范围查询:时间复杂度为O(logN)。若子节点通过链表连接,可以快速扫描连续范围的数据。
  • 适合大规模数据:节点可存储多个关键字。

4.局限性:

  • N的取值需要合理设计;
  • 节点结构更复杂。 

🌳B树

1.定义:是一种平衡的多路搜索树,在B树中每个节点的子节点可以多于两个子节点。

2.查询方式:在B树查找一个关键字,从根节点开始,根据关键字与节点中关键字的比较结构决定进入哪个节点,知道找到关键字或者达到叶子结点为止。 

    如果想要画图可以点击下方链接来画图: 

    B—Treehttps://cs.csub.edu/~msarr/visualizations/BTree.html

      🌳B+树

      1.定义:B+是B树的一种变形,在B树的基础上进行优化,更适合在数据库中作为索引结构使用。经常用于数据库和文件系统等场合的平衡查找树。MySQL索引采用的数据结构。

      2.查询方式:与B树类似,但是其可以利用叶子节点的链表结构,快速遍历范围内的所有数据。

       如果想要画图可以点击下方链接来画图: 

      B+Treehttps://www.cs.usfca.edu/~galles/visualization/BPlusTree.html

      B树和B+树是N叉树的具体实现。 

      🌳B+树与B树的区别

       

      区别B树B+树
      节点存储叶子节点、非叶子节点存储索引+数据非叶子节点进存储索引,叶子节点存储索引+数据
      查询路径数据分布在所有节点,可以在非叶子节点找到所查询的数据非叶子节点的值都保存在叶子节点,数据只分布在叶子节点,非叶子节点值保存对子节点的应用,没有保存真实数据。只能在叶子节点找到所查询的数据
      范围查询逐层遍历节点叶子节点使用双链表连接,叶子节点之间有一个相互连接的引用,可以通过子节点找到兄弟节点

       

      Read more

      DAY4 基于 OpenClaw + 飞书开放平台实现 AI 新闻推送机器人

      DAY4 基于 OpenClaw + 飞书开放平台实现 AI 新闻推送机器人

      DAY4 基于 OpenClaw + 飞书开放平台实现 AI 新闻推送机器人 目录 DAY4 基于 OpenClaw + 飞书开放平台实现 AI 新闻推送机器人 前  言 1 环境准备 1.1 华为云开发环境 1.2 ModelArts 代金券与模型服务 1.3 启动 OpenClaw 网关 2 飞书开放平台配置 2.1 创建企业自建应用 2.2 添加机器人能力 2.3 配置应用权限 2.4 发布应用版本 3 OpenClaw 与飞书集成 3.1 配置 OpenClaw

      By Ne0inhk

      告别复杂配置!Z-Image-Turbo镜像一键启动AI绘画

      告别复杂配置!Z-Image-Turbo镜像一键启动AI绘画 你是不是也经历过—— 想试试最新的AI绘画工具,结果卡在第一步:下载模型要等两小时、装依赖报错十七次、配CUDA版本像解谜、最后连WebUI的端口都映射不成功? 别折腾了。今天介绍一个真正“开箱即用”的解决方案:Z-Image-Turbo镜像——阿里通义实验室开源的极速文生图模型,不用编译、不需联网、不改代码,三步启动,直接出图。 这不是概念演示,也不是简化版Demo,而是一个完整封装、生产级稳定的本地AI绘画服务。它把原本需要半天才能跑通的流程,压缩成不到两分钟的操作。下面我就带你从零开始,亲手点亮这个“即插即画”的AI画板。 1. 为什么Z-Image-Turbo值得你立刻试试? 1.1 它不是又一个“参数很大、速度很慢”的模型 Z-Image-Turbo是Z-Image的蒸馏版本,核心突破在于:用更少的计算,换更高的质量。 官方实测数据很直观: * 仅需8步采样(NFEs) 就能生成一张1024×1024高清图——主流SDXL模型通常需要30步以上; * 在H800上单图推理耗时低于0.8秒,

      By Ne0inhk
      海康机器人3D激光轮廓仪快速调试一

      海康机器人3D激光轮廓仪快速调试一

      3D轮廓仪相机物料准备 DP系列轮廓仪 24V开关电源 8pin转RJ45千兆网线 12pin转open电源线 直线运动平台 海康3D授权加密狗 软件下载 机器视觉立体相机客户端 —— 3DMVS客户端 3DMVS客户端是专为海康机器人立体相机开发的软件应用程序。适用于MV-DP系列3D激光轮廓传感器、MV-DL系列线 激光立体相机。客户端支持实时预览、参数配置、标定、数据保存、升级固件等功能。 用于3D轮廓仪图像效果调试;并集成相机SDK二次开发包供客户开发; 软件获取方式:海康机器人官网->服务支持->下 载中心,找到3DMVS最新版本下载即可 海康机器人-机器视觉-下载中心 (hikrobotics.com) 安装完成3DMVS后,SDK二次开发包路径: 默认装C盘,安装过程一直单击下一步即可 打开3DMVS后显示效果;“设备列表”里会显示当前网络里的3D相机 电脑环境配置 • 环境配置 • 关闭防火墙和杀毒软件(若安装有360、火绒、腾讯管家等杀毒软件,请关闭退出杀毒软件) • 电源选型设置为高性能模式:通过“控制面板>

      By Ne0inhk
      小鹏VLA 2.0的“神秘涌现”:从痛苦到突破,自动驾驶与机器人如何突然“开窍”?

      小鹏VLA 2.0的“神秘涌现”:从痛苦到突破,自动驾驶与机器人如何突然“开窍”?

      大家好,我是数据与算法架构提升之路,专注于AI、自动驾驶和机器人领域的最新动态。今天,我们来聊聊小鹏汽车在2025科技日上爆出的重磅消息:VLA 2.0和人形机器人IRON的“涌现”过程。这不仅仅是技术迭代,更是像科幻小说一样的突然“觉醒”。如果你对自动驾驶的未来感兴趣,这篇文章绝对值得一读!我们将基于小鹏自动驾驶负责人刘先明和机器人副总裁米良川的独家对话,揭秘背后的故事。 * 刘先明 | 小鹏汽车自动驾驶负责人 他于2016年博士毕业于伊利诺伊大学厄巴纳-香槟分校(UIUC),曾在Facebook(现Meta)、Cruise任职,从事机器学习与计算机视觉领域的前沿研究工作。现全面负责小鹏汽车自动驾驶中心业务和组织管理工作。 * 米良川 | 小鹏汽车机器人副总裁及AI技术委员会负责人 他是机器人与AI领域的资深专家。曾在NVIDIA任职十余年,有深厚的GPU并行计算、移动计算、深度学习及自动驾驶技术功底;并曾于CMU机器人研究所深造,且拥有创办机器人公司的实践经验。 涌现的奇迹:从失败边缘到全新大陆 想象一下:一个项目经历了数月的失败,团队内部甚至多次讨论是否要停掉它

      By Ne0inhk