Dus*_*ine 31

独特的作品不是差异所在.索引和键不是一回事,也不具有可比性.

密钥是一个数据列或多个列,它们被强制为唯一的约束,主键或显式拒绝唯一约束.索引是用于存储数据位置以便更快检索的结构.

来自文档:

独特的指数

在表或视图上创建唯一索引.唯一索引是不允许两行具有相同索引键值的索引.视图上的聚簇索引必须是唯一的

唯一键(约束)

您可以使用UNIQUE约束来确保在不参与主键的特定列中不输入重复值.尽管UNIQUE约束和PRIMARY KEY约束都强制实施唯一性,但如果要强制实施不是主键的列或列组合的唯一性,请使用UNIQUE约束而不是PRIMARY KEY约束.

  • doc的解释也是教科书。我真的不知道它描绘了什么。这只会让我更加困惑。Navicat的设计表模式使两页选项卡成为“唯一键”和“索引”,这使我的同事非常困惑。我讨厌课本上的谈话。 (3认同)

OMG*_*ies 22

这个MSDN文章比较这两个是你追求的.术语是"约束"是ANSI,但在SQL Server中,您无法禁用唯一约束...

在大多数情况下,没有区别 - 约束是作为封面下的索引实现的.MSDN文章支持这一点 - 不同之处在于元数据,例如:

  • 调整FILLFACTOR
  • INCLUDE提供更有效的覆盖索引(复合约束)
  • 过滤的索引就像对行子集的约束/忽略多个null等.

  • “约束条件是作为隐藏条件下的索引来实现的”-绝对正确,在任何情况下都没有索引就不可能有效地执行。 (2认同)

Utt*_*tam 6

以下是一些关键区别:

目的:

  • 唯一键:确保表级别数据的完整性,以便表中不能输入重复项。不用于查询规划,对查询速度没有贡献。(它与主键的用途不同,主键唯一标识每条记录,用于更新/删除等数据操作。在复杂的表中,唯一键可以是多个列的组合,使用唯一键来标识记录的效率会很低。因此,主键是识别表中特定记录的快速方法,而唯一键保证没有两个记录具有相同的键属性。)
  • 唯一索引:确保索引级别数据的唯一性,不能保证表级别的唯一性,例如过滤索引的情况。用于查询计划和获取数据,从而根据使用/查询的列加快查询速度。

过滤器选项:

  • 唯一键:过滤器选项不可用
  • 唯一索引:过滤器选项可用

存储选项:

  • 唯一密钥:仅限文件组
  • 唯一索引:文件组或分区

图标:

  • 唯一键:图标是垂直键[在此输入图像描述]
  • 唯一索引:图标是b树[在此输入图像描述]


nvo*_*gel 5

“唯一键”是同义反复。键(又名“候选键”)是数据库的逻辑特征 - 强制执行表中一组属性的唯一性的约束。

索引是一种物理级别的功能,旨在以某种方式优化性能。有多种类型的索引。


小智 5

唯一键:它是对数据库施加限制的约束。该限制是它不允许重复值。例如,如果您想选择一列作为主键,它应该是 NOT NULL & UNIQUE。

唯一索引:它是一种可以提高在数据库上执行查询时的性能的索引。在唯一索引中,它也不允许索引中存在重复值。即没有两行具有相同的索引键值。