DBMS 中的索引:什么是索引,索引类型及示例
什么是索引?
索引 是一种数据结构技术,可让您快速从数据库文件中检索记录。索引是一个只有两列的小表。第一列包含表的主键或候选键的副本。其第二列包含一组 指针 用于保存特定键值的磁盘块的地址。
索引 –
- 将搜索关键字作为输入
- 有效地返回匹配记录的集合。
DBMS 中的索引类型

数据库中的索引是根据其索引属性来定义的。两种主要类型的索引方法是:
- 主索引
- 二级索引
DBMS 中的主索引
主索引是一个有序文件,长度固定,有两个字段。第一个字段与主键相同,第二个字段指向特定的数据块。在主索引中,索引表中的条目之间始终存在一对一的关系。
DBMS中的主要索引也进一步分为两种类型。
- 致密指数
- 稀疏指数
致密指数
在密集索引中,会为数据库中每个搜索键值创建一条记录。这可以帮助您更快地进行搜索,但需要更多空间来存储索引记录。在此索引中,方法记录包含搜索键值并指向磁盘上的实际记录。
稀疏指数
它是仅针对文件中的某些值出现的索引记录。稀疏索引可帮助您解决密集索引的问题 DBMS在这种索引技术中,一系列索引列存储相同的数据块地址,当需要检索数据时,将获取该块地址。
但是,稀疏索引只存储某些搜索键值的索引记录。它需要的空间较少,插入和删除的维护开销也较少,但与密集索引相比,它在定位记录方面较慢。
下面是数据库索引稀疏索引的示例
DBMS 中的二级索引
DBMS 中的二级索引可以由每个记录具有唯一值的字段生成,该字段应该是候选键。它也称为非聚类索引。
这种两级数据库索引技术用于减少第一级的映射大小。因此,对于第一级,选择较大的数字范围;映射大小始终保持较小。
二级索引示例
让我们通过数据库索引示例来了解二级索引:
在银行账户数据库中,数据按 acc_no 顺序存储;您可能想要查找 ABC 银行特定分行的所有账户。
在这里,您可以为每个搜索键在 DBMS 中创建一个二级索引。索引记录是指向存储桶的记录,该存储桶包含指向具有特定搜索键值的所有记录的指针。
ClusterDBMS 中的索引
在聚集索引中,记录本身存储在索引中,而不是指针。有时索引是在非主键列上创建的,这些列对于每个记录可能不是唯一的。在这种情况下,您可以将两个或多个列分组以获取唯一值并创建一个称为聚集索引的索引。这也有助于您更快地识别记录。
示例:
假设一家公司在各个部门招聘了许多员工。在这种情况下,应该在 DBMS 中为属于同一部门的所有员工创建聚类索引。
它被视为单个集群,索引点指向整个集群。这里,Department_no 是非唯一键。
什么是多级索引?
多级索引 数据库 当内存中放不下主索引时,就会创建稀疏索引。在这种类型的索引方法中,您可以减少磁盘访问次数,缩短任何记录并将其作为顺序文件保存在磁盘上,并在该文件上创建稀疏基。
B-树索引
B 树索引是 DBMS 中广泛使用的数据结构,用于基于树的索引。它是 DBMS 技术中基于树的索引的多级格式,具有平衡 二叉搜索树. B 树的所有叶节点都表示实际的数据指针。
此外,所有叶节点都通过链接表相互链接,这使得 B 树能够支持随机和顺序访问。
- 引导节点必须具有 2 至 4 个值。
- 从根到叶的每条路径大部分都是等长的。
- 除根节点之外的非叶节点有 3 到 5 个子节点。
- 每个非根或非叶的节点都有 n/2] 到 n 个子节点。
索引的优点
索引的重要优点/优势是:
- 它可以帮助您减少检索数据所需的总 I/O 操作数,因此您不需要从索引结构访问数据库中的行。
- 为用户提供更快的数据搜索和检索。
- 索引还可以帮助您减少表空间,因为您不需要链接到表中的行,因为不需要在索引中存储 ROWID。因此,您将能够减少表空间。
- 您无法对引导节点中的数据进行排序,因为主键的值对其进行了分类。
索引的缺点
索引的重要缺点/弊端是:
- 要执行索引数据库管理系统,需要一个具有唯一值的主键。
- 您不能对数据库中的索引数据执行任何其他索引。
- 您不能对索引组织表进行分区。
- SQL 索引降低 INSERT、DELETE 和 UPDATE 查询的性能。
总结
- 索引是一个由两列组成的小表。
- 两种主要类型的索引方法是 1) 主索引 2) 辅助索引。
- 主索引是一个有序文件,其长度固定,具有两个字段。
- 主索引又进一步分为两种类型:1)密集索引,2)稀疏索引。
- 在密集索引中,会为数据库中的每个搜索键值创建一条记录。
- 稀疏索引方法可以帮助您解决密集索引的问题。
- DBMS 中的二级索引是一种索引方法,其搜索键指定与文件顺序不同的顺序。
- Cluster索引被定义为订单数据文件。
- 当主索引无法容纳内存时,就会创建多级索引。
- 索引的最大好处是它可以帮助您减少检索数据所需的总 I/O 操作数。
- 执行索引数据库管理系统的最大缺点是,需要在表上设置一个具有唯一值的主键。