数据库索引分类。

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

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

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

  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 个,主键)、非聚簇(多个,辅助) ▷ 业务常用:主键、唯一、普通、联合、覆盖

相关推荐
云和恩墨3 分钟前
技术时刻丨GaussDB使用DBLINK连接到Oracle
数据库·oracle·gaussdb
静听山水6 分钟前
StarRocks系统表
数据库
运维行者_9 分钟前
Applications Manager 引入持续剖析技术,突破传统 APM 监控瓶颈
java·运维·网络·jvm·数据库·安全·web安全
静听山水9 分钟前
StarRocks 数据类型全面详解(对比 MySQL)
数据库
安科瑞刘鸿鹏1713 分钟前
企业能源物联网,本质是一场数据整合能力的较量
运维·数据库·物联网·能源
大厂技术总监下海15 分钟前
向量数据库“卷”向何方?从Milvus看“全功能、企业级”的未来
数据库·分布式·go·milvus·增强现实
FinTech老王15 分钟前
2026年国产主流时序数据库选型指南
数据库·时序数据库·时序数据
快乐非自愿20 分钟前
Redis和 Redisson 集成踩坑日记
数据库·redis·bootstrap
zgl_2005377924 分钟前
源代码:ZGLanguage 解析SQL数据血缘 之 显示 WITH SQL 结构图
大数据·数据库·数据仓库·sql·数据治理·etl·数据血缘
五阿哥永琪28 分钟前
MySQL 核心机制精讲:B+树查询、Buffer Pool、COUNT 优化与 CHAR/VARCHAR 实战指南
数据库·b树·mysql