如果列NOT NULL UNIQUE CLUSTERED INDEX将是主键,则可能的性能更改

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如果列NOT NULL UNIQUE CLUSTERED INDEX将是主键,则可能的性能更改相关的知识,希望对你有一定的参考价值。

如果列被声明为NOT NULL UNIQUE CLUSTERED INDEX,那么它会使PRIMARY KEY对性能或任何实际的变化做任何改变吗?

答案

它不应该有任何影响。在少数手抄1中,PRIMARY KEYUNIQUE KEY相同,附加条件是所有列都被强制为非NULL。因此,将此列装饰为PRIMARY KEY不应导致实现该表的物理数据结构2的任何更改。

CLUSTERED是一个完全独立的概念 - 有时与PRIMARY KEY混为一谈。如果表没有CLUSTERED INDEX并且添加了PRIMARY KEY,那么默认情况下,这也将被定义为CLUSTERED INDEX。但是如果需要的话,这种行为可以被覆盖,而且这两种行为在实践中并没有结合在一起。


1I实际上在这一点上无法想到任何相关的差异,但这只是为了避免挑剔,希望如此。

2聚簇索引和任何非聚簇索引和统计信息。

另一答案

PRIMARY KEY不允许null并且必须是唯一的,约束NOT NULL UNIQUE也可以像PRIMARY KEY那样将相似的规则应用到列中,但是,你的表只能有一个主键,但可能有多个NOT NULL UNIQUE列。

并且通过NOT NULL UNIQUE CLUSTERED INDEXPRIMARY KEY,两者都将按照CLUSTERED INDEX进行存储,排序和结构化,因此在选择,插入,更新或删除的操作性能基础上,应该没有什么不同

唯一的区别可能在于元数据本身。

以上是关于如果列NOT NULL UNIQUE CLUSTERED INDEX将是主键,则可能的性能更改的主要内容,如果未能解决你的问题,请参考以下文章

如何遍历列,检查任何列中是不是存在特定值,改变新列并输入 1 如果存在,如果不存在则输入 0?

如果列大于某个值,则更新列

如果年龄列基于oracle中的出生日期列为空,如何更新年龄列?

Pandas:如果条件[重复],则从另一列更新列值

在使用 Linq To SQL 时,如果其他列没有更改,如何避免设置某些列?

如果前一列包含值,则有条件地填充列?