Создание первичного ключа или уникального индекса в столбце URL
Можно ли создать первичный ключ или уникальный индекс для столбца NVARCHAR(4000), используемого для хранения URL-адресов? Похоже, что в SQL 2008 существует ограничение в 900 байт для уникальных индексов.
1 ответ
Решение
Лучше создать индекс с префиксом, скажем, сначала 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)