常见索引类型

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: 本文档系统梳理了数据库索引的多维度分类:按存储结构分为聚簇与非聚簇索引,按约束性分为普通、唯一及主键索引,按字段数量分为单列与组合索引,按功能支持全文与空间索引,按底层结构涵盖B+树与哈希索引,详述其定义、适用场景及核心特性。

分类维度

索引类型

核心定义

支持引擎

适用场景

关键特点 / 注意事项

存储结构

聚簇索引(Clustered)

数据与索引物理存储绑定,索引即数据(索引叶子节点存储完整数据行)

InnoDB(默认)

主键查询、高频根据主键 / 聚簇键查询

1. 每张表仅 1 个聚簇索引;2. 优先以主键为聚簇键,无主键则选唯一非空列,否则生成隐藏 row_id;3. 主键查询效率极高

非聚簇索引(Non-Clustered)

数据与索引物理分离,索引叶子节点存储数据行指针 / 主键值(间接指向数据)

MyISAM、InnoDB(二级索引)、Memory

非主键字段查询(如用户名、手机号查询)

1. 每张表可多个非聚簇索引;2. 查询需 “回表”(InnoDB)或 “通过指针找数据”(MyISAM);3. 存储开销比聚簇索引小

约束特性

普通索引(Normal)

无约束限制,仅用于加速查询的基础索引

所有支持索引的引擎

普通查询场景(如商品分类查询、文章列表查询)

1. 允许重复值和 NULL;2. 无额外约束逻辑,创建 / 维护成本低

唯一索引(Unique)

索引列值必须唯一(允许 NULL,且 NULL 可多个),兼具约束和加速查询功能

InnoDB、MyISAM、Memory

需保证字段唯一性的场景(如手机号、邮箱、身份证号)

1. 避免重复数据,插入重复值会报错;2. 查询效率略高于普通索引(索引树更紧凑);3. 主键索引是特殊的唯一索引(不允许 NULL)

主键索引(Primary Key)

特殊的唯一索引,不允许 NULL,默认作为 InnoDB 的聚簇键

所有支持索引的引擎

表的唯一标识(如 user_id、order_id)

1. 每张表仅 1 个主键索引;2. InnoDB 中自动作为聚簇索引,MyISAM 中为普通唯一非聚簇索引;3. 优先用自增 INT/BIGINT 作为主键

字段数量

单列索引(Single-Column)

仅基于单个字段创建的索引

所有支持索引的引擎

单字段查询(如按手机号查用户、按状态查订单)

1. 创建简单、维护成本低;2. 仅能加速该字段的查询条件

组合索引(Composite/Multi-Column)

基于多个字段组合创建的索引(字段顺序影响索引效率)

InnoDB、MyISAM、Memory

多字段联合查询(如按 “用户 ID + 订单状态” 查订单、“用户名 + 手机号” 验证)

1. 遵循 “最左前缀原则”(查询需匹配索引字段顺序);2. 可覆盖部分多字段查询,减少回表;3. 字段顺序建议:高区分度字段在前

查询功能

全文索引(Fulltext)

针对文本内容的语义检索索引,支持关键词匹配(而非前缀 / 后缀模糊匹配)

InnoDB(5.6+)、MyISAM

文章内容搜索、商品描述搜索、评论检索

1. 支持 CHAR/VARCHAR/TEXT 字段;2. 忽略短词(默认 < 4 字符);3. 高并发 / 复杂检索建议用 Elasticsearch 替代

空间索引(Spatial)

针对地理空间数据的索引,支持位置关系查询(如距离、包含)

InnoDB(5.7+)、MyISAM

附近位置查询(如 “1 公里内餐厅”)、区域筛选

1. 支持 POINT/LINESTRING/POLYGON 等空间类型;2. 字段不能为 NULL;3. 需用空间函数(如 ST_Distance_Sphere)查询

索引结构

B + 树索引(B+Tree)

主流索引结构,所有数据存储在叶子节点,叶子节点按顺序链表连接

InnoDB、MyISAM、Memory(可选)

绝大多数查询场景(等值、范围、排序、分页)

1. 平衡树结构,查询效率稳定(O (log n));2. 支持范围查询和排序;3. InnoDB/MyISAM 默认索引结构

哈希索引(Hash)

基于哈希表实现,通过字段哈希值快速定位数据,不支持范围查询

Memory(默认)、InnoDB(自适应哈希索引,AHI)

高频等值查询(如缓存表、字典表)

1. 等值查询极快,范围 / 排序查询失效;2. 不支持模糊匹配;3. InnoDB 的 AHI 为自动开启,不可手动创建

相关文章
|
1天前
|
云安全 人工智能 算法
以“AI对抗AI”,阿里云验证码进入2.0时代
三层立体防护,用大模型打赢人机攻防战
1283 1
|
9天前
|
编解码 人工智能 自然语言处理
⚽阿里云百炼通义万相 2.6 视频生成玩法手册
通义万相Wan 2.6是全球首个支持角色扮演的AI视频生成模型,可基于参考视频形象与音色生成多角色合拍、多镜头叙事的15秒长视频,实现声画同步、智能分镜,适用于影视创作、营销展示等场景。
694 4
|
2天前
|
机器学习/深度学习 安全 API
MAI-UI 开源:通用 GUI 智能体基座登顶 SOTA!
MAI-UI是通义实验室推出的全尺寸GUI智能体基座模型,原生集成用户交互、MCP工具调用与端云协同能力。支持跨App操作、模糊语义理解与主动提问澄清,通过大规模在线强化学习实现复杂任务自动化,在出行、办公等高频场景中表现卓越,已登顶ScreenSpot-Pro、MobileWorld等多项SOTA评测。
481 2
|
2天前
|
人工智能 Rust 运维
这个神器让你白嫖ClaudeOpus 4.5,Gemini 3!还能接Claude Code等任意平台
加我进AI讨论学习群,公众号右下角“联系方式”文末有老金的 开源知识库地址·全免费
|
2天前
|
存储 弹性计算 安全
阿里云服务器4核8G收费标准和活动价格参考:u2a实例898.20元起,计算型c9a3459.05元起
现在租用阿里云服务器4核8G价格是多少?具体价格及配置详情如下:云服务器ECS通用算力型u2a实例,配备4核8G配置、1M带宽及40G ESSD云盘(作为系统盘),其活动价格为898.20元/1年起;此外,ECS计算型c9a实例4核8G配置搭配20G ESSD云盘,活动价格为3459.05元/1年起。在阿里云的当前活动中,4核8G云服务器提供了多种实例规格供用户选择,不同实例规格及带宽的组合将带来不同的优惠价格。本文为大家解析阿里云服务器4核8G配置的实例规格收费标准与最新活动价格情况,以供参考。
225 150
|
9天前
|
机器学习/深度学习 人工智能 前端开发
构建AI智能体:七十、小树成林,聚沙成塔:随机森林与大模型的协同进化
随机森林是一种基于决策树的集成学习算法,通过构建多棵决策树并结合它们的预测结果来提高准确性和稳定性。其核心思想包括两个随机性:Bootstrap采样(每棵树使用不同的训练子集)和特征随机选择(每棵树分裂时只考虑部分特征)。这种方法能有效处理大规模高维数据,避免过拟合,并评估特征重要性。随机森林的超参数如树的数量、最大深度等可通过网格搜索优化。该算法兼具强大预测能力和工程化优势,是机器学习中的常用基础模型。
352 164