在URL列上创建主键或唯一索引

Mar*_*man 4 sql-server primary-key unique-index

是否可以在用于保存URL的NVARCHAR(4000)列上创建主键或唯一索引?SQL 2008中的唯一索引似乎有900字节的限制.

Qua*_*noi 6

最好在例如50快速查找的第一个字符和散列UNIQUE上的索引MD5(或另一个足够独特的散列)上创建一个带前缀的索引.

CREATE TABLE urls (url NVARCHAR(4000) NOT NULL, url_prefix AS LEFT(url, 50), url_hash AS HashBytes('MD5', url))

CREATE INDEX ix_urls_prefix ON urls (url_prefix)

CREATE INDEX ix_urls_hash ON urls (url_hash)
Run Code Online (Sandbox Code Playgroud)