使用校验和作为主键时,您可以拥有多少行?

时间:2016-05-20 09:51:17

标签: sql sql-server

使用校验和作为主键时,您可以拥有多少行?

2 个答案:

答案 0 :(得分:1)

CHECKSUM返回int,因此从理论上讲,您可以拥有2 ^ 32 = 4294967296个唯一值。 但在现实生活中,你永远不会达到那个数字,因为校验和可以为不同的参数返回相同的结果。 因此,您绝不应将校验和结果用作PK。

答案 1 :(得分:1)

不要将校验和用作主键,因为它们不是唯一的。创建一个普通的自动增量PK,一个校验和列,并在需要时为其添加一个索引。

原因如下:哈希受到碰撞。碰撞是指两个不同的输入导致相同的散列。 不太可能发生,但机会是。例如,CRC32用于文本" plumless"对于文本" buckeroo"完全相同。同样的#34;编码" vs" gnu"。

当你获得大约250,000行时,碰撞的可能性,因此重复PK,对你来说会相当高。

来源