10

可能重复:
SQL Server 中主键和唯一聚集索引之间的性能差异

我确保我搜索了这个论坛,但之前没有人问过这个问题,我也无法在任何地方找到任何答案。

我的问题是 =“主键和聚集索引有什么区别?”

4

4 回答 4

19

好吧,对于初学者来说,一个是key,另一个是index

在大多数数据库术语中,密钥是以某种方式识别数据的东西,与数据的存储或性能没有明确的关系。主键是唯一标识该数据的一段数据。

另一方面,索引是描述访问数据的(更快)方式的东西。它(通常)不关心数据的完整性和意义,它只关心性能和存储。特别是在 SQL Server 中,聚集索引是指示行存储的物理顺序的索引。它所做的事情非常复杂,但一个有用的近似值是行按聚集索引的值排序。这意味着当您不指定 order 子句时,数据很可能会按照聚集索引的值进行排序。

所以,它们是完全不同的东西,有点互补。这就是为什么当您通过设计器创建主键时,SQL Server 会连同它一起抛出一个免费的聚集索引。

于 2013-01-08T11:01:14.910 回答
6

在你问主键和聚集索引的区别之前,你必须知道键和索引不是一回事。

键可以是主键或外键。每个表只能有一个主键(但可能不止一列)。密钥是一个逻辑事物,它服务于业务逻辑并定义数据的完整性。外键是对另一个表的主键的引用。

索引有助于加快查询速度,因为它会构建对您选择的列的引用。因此,它会创建单独的文件来帮助您使用索引列的查询。

聚集索引是一种特殊的索引,它定义了表的物理顺序(它应该是顺序数据)。

我试图用我自己的话来解释这一点,但是你会通过谷歌搜索找到你需要的所有资源(我绝对建议你阅读很多这个!)

于 2013-01-08T11:08:56.367 回答
4

主键是记录的唯一标识符。它负责该字段的唯一值。它只是现有的或专门创建的字段或唯一标识行的字段组。

聚集索引是一种通过访问有序记录来提高数据检索操作速度的数据结构。索引是表的一部分的副本。它在硬盘上占据额外的物理位置。

于 2013-01-08T11:18:14.810 回答
0

据我所知,在许多 RDBMS 中,当您创建 PK 时,后面的引擎会创建聚集索引。PK 用于Entity integrity聚集索引设置数据顺序并用于性能。

于 2013-01-08T11:11:11.717 回答