数据库索引分类。

数据库索引核心分类(实操高频版)

✅ 一、按数据结构(最核心,面试 / 工作必用)

是数据库索引最根本的分类,决定索引性能、适用场景。

  1. B + 树索引 :MySQL/PostgreSQL 默认主流索引,平衡多路查找树 结构,叶子节点串联成链表,支持范围查询、排序、分页,适配 90% 业务场景(主键索引、普通索引均基于此)。
  2. 哈希索引 :基于哈希表实现,等值查询极快 (O (1)),但不支持范围查询、排序,仅适配精准匹配场景(如 Redis、MySQL 的 Memory 引擎)。
  3. 全文索引:专为文本内容检索设计,支持模糊匹配、关键词检索(如 MySQL 的 FULLTEXT,ES 核心索引),适用于文章、评论等大文本字段。
  4. R-Tree 索引 :空间索引,适配地理空间数据(如经纬度、区域范围),支持空间范围查询(如 MySQL 的 GIS 索引)。

✅ 二、按物理存储

区分索引与数据的存储关系,直接影响查询效率。

  1. 聚簇索引(聚集索引) :索引与数据行物理存储在一起 ,一张表仅能有 1 个 ,叶子节点就是实际数据行。MySQL 的主键索引就是聚簇索引,查询速度最快。
  2. 非聚簇索引(二级索引 / 辅助索引) :索引与数据行分开存储,一张表可创建多个,叶子节点存储聚簇索引的主键值,查询需回表(主键查询例外),如普通索引、联合索引。

✅ 三、按逻辑功能 / 业务用途(开发建索引直接参考)

从业务使用角度划分,是日常建索引最常用的分类方式。

  1. 主键索引 :主键字段创建的索引,唯一且非空,自动创建聚簇索引,保证数据唯一性,加速主键查询。
  2. 普通索引:最基础的索引,无唯一性约束,仅加速字段查询,可创建在任意非主键字段。
  3. 唯一索引 :字段值唯一(允许 NULL),保证数据唯一性的同时加速查询,如手机号、身份证号字段。
  4. 联合索引(复合索引) :基于多个字段 创建的索引,遵循最左前缀原则 ,适配多字段组合查询(如where a=1 and b=2),比单字段索引更高效。
  5. 覆盖索引 :索引包含查询所需的全部字段,无需回表,直接从索引中获取数据,大幅提升查询性能(极致优化常用)。

✅ 四、其他高频特殊分类(拓展)

  1. 前缀索引 :对字段前 N 个字符创建索引,适配长字符串字段(如 varchar (255)),节省存储空间,降低索引维护成本。
  2. 反向索引 :对字段值反转后创建索引,适配按尾字符查询的场景(如手机号后 4 位、后缀匹配)。
  3. 位图索引 :按字段离散枚举值建立位图,适配低基数字段(如性别、状态),在 Oracle 中常用,MySQL 极少使用。

✔️ 核心速记(高频考点)

▷ 数据结构:B + 树(主力)、哈希(等值)、全文(文本) ▷ 物理存储:聚簇(1 个,主键)、非聚簇(多个,辅助) ▷ 业务常用:主键、唯一、普通、联合、覆盖

相关推荐
故乡dee云1 天前
AWS 产品太多不会选?按“网站、数据库、文件、日志”4 类需求快速匹配
数据库·云计算·aws
曹牧1 天前
C#:问号
前端·数据库·c#
奇树谦1 天前
《现代 Key-Value 数据库原理:从 B+Tree 到 LSM Tree》-第五篇:现代数据库横向对比
数据库·lsm-tree
李白客1 天前
分布式集群与数据库产业:从单机到集群的架构跃迁与市场重构
数据库·分布式·架构
福大大架构师每日一题1 天前
Redis 8.10.0 正式发布:紧凑哈希、批量导入、备份恢复、流与时序能力全面升级
数据库·redis·哈希算法
雨晨源码(同名B站)1 天前
基于深度学习YoloV11农业病害虫害检测系统 智慧农业信息化综合管理平台 (附源码+lw文档+ppt)
数据库·人工智能·深度学习·yolo·信息可视化
DBA小马哥1 天前
向量数据库入门到进阶:Embedding、ANN算法与RAG落地的关键术语
数据库·算法·embedding
云和数据.ChenGuang1 天前
fastapi项目拆分实战数据模型
java·服务器·数据库·人工智能·深度学习·fastapi·强化学习
祈禾1 天前
Redis三大特殊数据类型
运维·服务器·数据库·redis·笔记·缓存
东方护航数据恢复(深圳)1 天前
MySQL_Oracle数据库崩溃修复全攻略_东方护航数据恢复深圳店
数据库·mysql·oracle