Navicat 博客

RDBMS 索引类型概述 2021 年 9 月 17 日,由 Robert Gravelle 撰写

最近,数据库索引的主题出现了几次,特别是在数据库索引的缺点数据库索引对写入操作的影响文章中。这两篇文章都提到了关系数据库支持多种索引类型的事实。今天的文章将提供最常见索引类型的概述。

数据库索引的作用

在关系数据库管理系统(Relational Database Management Systems,RDBMS)中,索引是一个特殊的对象,允许用户从数据库中快速检索记录。通常,索引被实现为只有两列的查找表:第一列包含表的主键或候选键的副本;第二列包含一组指针,用于保存存储特定键值的磁盘块的地址。

两种类型的索引方法

索引类型可以根据它们的索引属性进行分类。这些分为主要和辅助索引两大类。

主索引是一个有序文件,其记录长度固定,有两个字段。索引的第一个字段以有序的方式复制数据文件的主键,第二个字段包含一个指针,指向包含该键的记录可用的数据块。

辅助索引是存储主键值而不是存储指向数据的指针的索引。优点是,通过主键访问数据,不需要任何额外的数据查找,因为你需要的所有数据都可以在主键的叶级页中找到。

DBMS 中的辅助索引可以由一个字段生成,该字段对每条记录都有一个唯一的值,并应该是一个候选键。它也被称为非聚集索引。这种两级数据库索引技术用于减少第一级的映射大小。

密集与稀疏索引

在密集索引中,会为数据库中的每个搜索关键字创建一条记录。这有助于你更快地搜索,但需要更多空间来存储索引记录。在这种索引方法中,记录包含搜索键值并指向磁盘上的真实记录。

稀疏索引是仅针对文件中的某些值出现的索引记录。稀疏索引可帮助你解决 DBMS 中密集索引的问题。在这种索引方法中,一系列索引列存储相同的数据块地址,当需要检索数据时,会获取块地址。由于稀疏索引仅存储某些搜索键值的索引记录,因此它需要的空间更少,插入和删除的维护开销也更少。缺点是与密集索引相比,它们定位记录的速度较慢。

主索引和辅助索引的示例

在 Navicat 中,作为“主键”一部分的字段可在表设计器的“字段”选项卡中标识:

pk (35K)

表通常需要辅助索引,以便用户可以搜索不属于主键的字段。在 Navicat 中,所有辅助索引都列在“索引”选项卡中:

secondary_index (58K)

当点击“解释”按钮,我们可以看到数据库使用哪些索引来获取给定查询的记录:

explain (57K)

总结

这篇文章概述了最常见的 RDBMS 索引类型,并提供了一个使用 Navicat Premium 的示例。如果你对 Navicat Premium, you can try it for free for 14 days!



Rob Gravelle 居住在加拿大渥太华,是一名有 20 多年经验的 IT 专家。过往,Rob 曾为与情报有关的组织(如加拿大边境服务局和各种商业组织)构建系统。在业余时间,Rob 是一名出色的吉他演奏家,他拥有多张 CD 和数字发行版

Navicat 文章
频道条目
分享
文章归档