1、MYSQL系列-深入理解Mysql索引底层数据结构与算法

索引的本质

索引是帮助MySQL高效获取数据的排好序的数据结构

索引数据结构

  1. 二叉树
  2. 红黑树
  3. Hash表
  4. B+Tree

B-Tree

B-Tree 叶节点具有相同的深度,叶节点的指针为空,所有索引元素不重复,节点中的数据索引从左到右递增排列

B+Tree(B-Tree变种)

非叶子节点不存储data,只存储索引(冗余),可以放更多的索引, 叶子节点包含所有索引字段, 叶子节点用指针连接,提高区间访问的性能

Hash

对索引的key进行一次hash计算就可以定位出数据存储的位置 。很多时候Hash索引要比B+ 树索引更高效 但是仅能满足 "=","IN",不支持范围查询 hash冲突问题。

MyISAM索引文件和数据文件是分离的(非聚集)

联合索引的底层存储结构长什么样?

相关推荐
背太阳的牧羊人17 分钟前
用于与多个数据库聊天的智能 SQL 代理问答和 RAG 系统(2) —— 从 PDF 文档生成矢量数据库 (VectorDB),然后存储文本的嵌入向量
数据库·人工智能·sql·langchain·pdf
计算机毕设指导61 小时前
基于Springboot的景区民宿预约系统【附源码】
java·开发语言·spring boot·后端·mysql·spring·intellij idea
zhangxueyi1 小时前
MySQL之企业面试题:InnoDB存储引擎组成部分、作用
java·数据库·mysql·面试·innodb
代码代码快快显灵1 小时前
Redis 优化秒杀(异步秒杀)
数据库·redis·缓存
极客先躯1 小时前
Redis 安装与配置指南
数据库·redis·数据验证·安装说明·编译和安装·redis 集群配置·查看集群
YaenLi2 小时前
MySQL 安装部署
linux·数据库·mysql
乄北城以北乀2 小时前
一.MySQL程序简介
数据库·mysql
炭烤毛蛋2 小时前
Ubuntu 磁盘修复
linux·数据库·ubuntu
代码代码快快显灵2 小时前
Redis之秒杀活动
数据库·redis·缓存·秒杀活动
一水鉴天4 小时前
为AI聊天工具添加一个知识系统 之27 支持边缘计算设备的资源存储库及管理器
数据库·人工智能·前端框架