3
是否可以在用於保存URL的NVARCHAR(4000)列上創建主鍵或唯一索引? SQL 2008中的唯一索引似乎有一個900字節的限制。在URL列上創建主鍵或唯一索引
是否可以在用於保存URL的NVARCHAR(4000)列上創建主鍵或唯一索引? SQL 2008中的唯一索引似乎有一個900字節的限制。在URL列上創建主鍵或唯一索引
最好爲第一個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)
謝謝。 SQL Server是否具有內置的MD5功能? – 2011-03-14 13:51:27
@Mark:是的,它被稱爲'HashBytes'。 http://msdn.microsoft.com/en-us/library/ms174415%28v=SQL.90%29.aspx – Quassnoi 2011-03-14 13:52:28
我認爲唯一索引應該在列url_hash上 – 2011-03-14 13:56:06