使用校验和作为主键时,您可以拥有多少行?
答案 0 :(得分:1)
CHECKSUM
返回int
,因此从理论上讲,您可以拥有2 ^ 32 = 4294967296个唯一值。
但在现实生活中,你永远不会达到那个数字,因为校验和可以为不同的参数返回相同的结果。
因此,您绝不应将校验和结果用作PK。
答案 1 :(得分:1)
不要将校验和用作主键,因为它们不是唯一的。创建一个普通的自动增量PK,一个校验和列,并在需要时为其添加一个索引。
原因如下:哈希受到碰撞。碰撞是指两个不同的输入导致相同的散列。 不太可能发生,但机会是。例如,CRC32用于文本" plumless"对于文本" buckeroo"完全相同。同样的#34;编码" vs" gnu"。
当你获得大约250,000行时,碰撞的可能性,因此重复PK,对你来说会相当高。
来源