Создание первичного ключа или уникального индекса в столбце URL - PullRequest
4 голосов
/ 14 марта 2011

Можно ли создать первичный ключ или уникальный индекс для столбца NVARCHAR (4000), используемого для хранения URL-адресов? В SQL 2008 существует ограничение в 900 байтов для уникальных индексов.

1 Ответ

6 голосов
/ 14 марта 2011

Лучше создать префиксный индекс, скажем, для первых 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)
...