常见索引类型

简介: 本文档系统梳理了数据库索引的多维度分类:按存储结构分为聚簇与非聚簇索引,按约束性分为普通、唯一及主键索引,按字段数量分为单列与组合索引,按功能支持全文与空间索引,按底层结构涵盖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 为自动开启,不可手动创建

相关文章
何为跨域?
URL由协议、子域名、主域名、端口和资源路径组成,任一部分不同即属不同域。跨域指不同域间相互访问资源,因安全策略常受限制。
|
4月前
|
存储 安全 算法
跨境电商用户IP真实性评估:高精度查询与离线库的融合策略
在跨境电商中,评估用户IP真实性是防止欺诈、优化营销的关键。本文将介绍如何结合高精度IP地址查询定位与IP离线库,通过技术手段验证IP来源。
跨境电商用户IP真实性评估:高精度查询与离线库的融合策略
|
3月前
|
人工智能 前端开发 安全
一文讲解与Agent前端发展相关的几个阶段和协议
本文梳理了Agent前端协议从“胶水代码”到标准化的演进历程。解析了MCP、MCPApps、A2A、AG-UI及A2UI在能力、协作、通信与呈现架构中的核心作用。通过深度集成,前端正实现AI能力的富交互呈现,推动人机交互走向“可见、可控、可信”。
551 4
|
传感器 人工智能 安全
蔚来汽车智能座舱接入通义大模型,并使用通义灵码全面提效
为加速AI应用在企业市场落地,4月9日,阿里云在北京召开AI势能大会。阿里云智能集团资深副总裁、公共云事业部总裁刘伟光发表主题演讲,大模型的社会价值正在企业市场释放,阿里云将坚定投入,打造全栈领先的技术,持续开源开放,为AI应用提速。
|
7月前
|
XML 缓存 JSON
全网最全面介绍淘宝API接口指南
淘宝开放平台提供200+ RESTful API,覆盖商品、交易、物流等核心场景,支持JSON/XML,响应&lt;100ms,成功率≥99.9%。需注册企业账号并获取TOP密钥,不同接口有调用频次限制。提供Python SDK,支持缓存、异步任务与Webhook事件监听。数据精度达98.5%±0.5%,要求AES加密、签名验证与权限隔离,遵循数据合规规范。推荐使用沙箱环境、Postman模板及开源项目加速开发。
1308 0
|
机器学习/深度学习 自然语言处理 算法
词嵌入(Word Embeddings)
词嵌入(Word Embeddings)
|
存储 安全 算法
《深度剖析:软总线设备认证机制如何筑牢互联安全防线》
在智能设备互联互通的时代,软总线作为数据交互的核心,其安全性尤为重要。设备认证机制通过生成唯一身份标识(如椭圆曲线公私钥对)确保合法设备接入。信任关系的建立包括PIN码认证和无交互认证等方式,结合加密与完整性保护技术,防止信息被窃取或篡改。此外,通过信任链拓展与管理,软总线实现跨设备安全互联。这一机制为智能家居、智能办公等场景提供了可靠保障,并将随技术发展持续优化,适应复杂网络环境。
288 7
|
SQL 缓存 分布式计算
2025年5大主流报表工具,哪款最适合你?
在中国企业的信息化建设中,报表是数据展示和业务决策的重要工具。然而,由于中国企业的特殊业务需求(如多层表头、复杂交叉报表、多源分片、动态扩展等),传统的国际报表工具往往难以满足需求。催生了专门针对中国式复杂报表的解决方案。下面带着大家一起看看2025年5大主流报表工具。
|
数据采集 分布式计算 大数据
构建高效的数据管道:使用Python进行ETL任务
在数据驱动的世界中,高效地处理和移动数据是至关重要的。本文将引导你通过一个实际的Python ETL(提取、转换、加载)项目,从概念到实现。我们将探索如何设计一个灵活且可扩展的数据管道,确保数据的准确性和完整性。无论你是数据工程师、分析师还是任何对数据处理感兴趣的人,这篇文章都将成为你工具箱中的宝贵资源。
|
存储 算法 Java
Java 内存管理与优化:掌控堆与栈,雕琢高效代码
Java内存管理与优化是提升程序性能的关键。掌握堆与栈的运作机制,学习如何有效管理内存资源,雕琢出更加高效的代码,是每个Java开发者必备的技能。
409 5

热门文章

最新文章