5

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

4

1 回答 1

7

最好在第一个50字符上创建一个前缀索引,以便快速查找,并UNIQUEMD5散列(或另一个足够唯一的散列)上创建一个索引。

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)
于 2011-03-14T13:47:43.823 回答