关键区别–**索引与非**索引
在关系数据库中,数据存储在表中。这些表使用诸如外键之类的约束相互关联。数据库由多个表组成。有时很难搜索到所需的数据。因此,索引可以用来加快搜索速度。数据库中使用的索引类似于一本书的索引。一本书的索引包含有相应页码的章节。数据库的索引与此类似。索引的结构类似于表,并且需要一些数据库空间。有两种类型的索引称为**索引和非**索引。在**索引中,索引的逻辑顺序与表行的物理顺序相匹配。在非**索引中,索引和实际数据位于不同的位置,因此索引的工作方式类似于获取实际数据的指针。**索引和非**索引的关键区别在于**索引组织实际数据,而非**索引指向实际数据。当索引较多时,当数据存储增加时,也应更新这些索引。因此,根据应用程序创建索引非常重要,因为这会降低速度。
目录
1. 概述和主要区别
2. **索引是什么
3. 什么是非**索引
4. **索引与非**索引的相似性
5. 并排比较–以表格形式显示**索引与非**索引
6. 摘要
什么是**索引(clustered index)?
在**索引中,索引组织实际数据。它类似于电话簿。电话号码是按字母顺序排列的。在搜索特定姓名时,可以找到相应的电话号码。因此,聚类索引以有组织的方式包含实际数据。每个表可以有一个索引。
主键用于指定表中的每个条目。在student表中,student id可以用作主键。在customer表中,customer iu id可以是主键。一般来说,可以考虑使用主键来创建**索引。基本上,在**索引中,由于索引逻辑顺序和表顺序相同,所以数据访问是系统的、快速的。
什么是非**指数(nonclustured index)?
在非**索引中,索引指向实际数据。非**索引是对数据的引用。因此,每个表可以有多个索引。非**索引的一个例子是一本书,它包含了带有标题和相应页码的主索引,或者在书的末尾包含了按字母顺序排列的重要术语和相应页码的索引。此索引不包含实际数据。但它提供了获取实际数据所需的信息。因此,索引和数据位于不同的位置。因此,它需要额外的存储空间。
当存在主键以外的键时,使用非**索引。通常,非**索引比**索引慢。
什么是**索引与非**索引的相似性(the similarity between clustered and nonclustered index)?
- **索引和非**索引都是用于有效搜索数据的索引类型。
丛生的(clustered)和非**索引(nonclustered index)的区别
**索引与非**索引 | |
**索引是一种索引类型,其中表记录被物理地重新排序以匹配索引。 | 非**索引是一种包含对实际数据的引用的索引类型。 |
索引数 | |
每个表可以有一个**索引。 | 每个表可以有许多非**索引。 |
速度 | |
**索引比非**索引快。 | 非**索引比**索引慢。 |
所需空间 | |
**索引不需要额外的空间。 | 非**索引需要额外的空间。 |
总结 - 丛生的(clustered) vs. 非**索引(nonclustered index)
关系数据库包含大量数据。因此,有一个特定的机制来快速搜索数据是很重要的。索引可以用来完成这个任务。有两种类型的索引。它们是**索引和非**索引。本文讨论了**索引与非**索引的区别。在**索引中,索引的逻辑顺序与表行的物理顺序相匹配。在非**索引中,索引和实际数据位于不同的位置,因此有指针来获取数据。**索引和非**索引的区别在于**索引组织实际数据,而非**索引指向实际数据。