数据库索引分类。

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

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

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

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

相关推荐
semantist@语校3 小时前
第五十八篇|从城市节律到制度密度:近畿日本语学院的数据建模与关西语校结构工程
大数据·服务器·数据库·人工智能·百度·ai·知识图谱
小宇的天下3 小时前
Calibre 工具的几何处理基础(11-1)
数据库·oracle
talenteddriver4 小时前
mysql: MySQL索引基础概念
数据库·mysql
king_harry4 小时前
PostgreSQL WAL 原理剖析、日志堆积治理与流复制监控
数据库·postgresql·wal·流复制
默默前行的虫虫4 小时前
nicegui网页多用户数据隔离总结
数据库·sql
特立独行的猫a4 小时前
PostgreSQL客户端工具介绍:从性能测试到跨平台管理
数据库·docker·postgresql·客户端·pgadmin4
微爱帮监所写信寄信4 小时前
微爱帮监狱写信寄信小程序:MySQL核心日志与备份恢复安全架构
数据库·mysql·小程序·邮局·监狱寄信·挂号信·邮政
isNotNullX5 小时前
数据迁移怎么做?有什么好用的数据库迁移工具推荐吗?
数据库·数字化·数据迁移·企业管理