对我来说,UNIQUE
关键字是为了更好地构建您的表(撇开用于识别目的的 PRIMARY KEY
)。例如,文件。如果您不想将相同的文件添加到数据库中,您可以将其 SHA-2 哈希 key 用作 UNIQUE KEY
。但是 SHA-2 是 512 个字符,而 InnoDB 有 255 个字符的限制。为什么 MySQL 有这个限制,如何使用更大、更可靠、唯一的 key ,如 SHA-2
最佳答案
SHA2-512 给出 512 位,即 64 字节。或十六进制的 char(128)。
在 MySQL 5.5 中,MyISAM 的唯一索引键长度为 1000 字节,InnoDB 的唯一索引键长度为 767。
当您选择使用 AUTO_INCREMENT 代理主键时,Unique 用于强制执行自然唯一性。或者当你想要时 super 键的唯一性 enforce subtypes .等
编辑:
要强制 LOB 值的唯一性,您只需对其进行哈希处理并添加一个约束。如果您有足够多的行具有可测量的冲突风险,那么为什么数据库中有这么多 LOB 值?
关于mysql - MySQL (InnoDB) 中 UNIQUE 的用途是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8119535/