處理在SQL Server 2005中存儲和索引URL的最佳方式是什麼?SQL Server 2005中的索引URL
我有一個WebPage表,用於存儲有關Web頁面的元數據和內容。我也有許多與WebPage表相關的其他表。他們都使用URL作爲關鍵。
問題是URL的可能非常大,並且將它們用作關鍵字會使索引變大和變慢。我不知道多少,但我已經多次閱讀使用大字段索引是避免。假設URL是nvarchar(400),它們是用作主鍵的巨大字段。
有什麼替代方案?
將URL用作密鑰而不是較小的字段可能會帶來多少痛苦。
我已經查看了具有標識列的WebPage表,然後將其用作WebPage的主鍵。這樣可以使所有相關索引變得更小,更高效,但是導致導入數據有點痛苦。關聯表的每個導入都必須先在表中插入數據之前查找url的標識。
我也玩過在URL上使用散列,創建一個較小的索引,但我還不確定它是否是最好的處理方式。它不會是一個獨特的索引,並且會受到少量碰撞的影響。所以我不確定在這種情況下使用的外鍵......
關於存儲在數據庫中的網頁會有數百萬條記錄,並且會有很多批量更新。另外還會有相當多的閱讀和彙總數據的活動。
有什麼想法?
如果使用散列解決方案,相關表對外鍵使用什麼?你不能使用散列,因爲你會碰到? – 2008-10-05 16:03:38
我認爲GUID解決方案與識別列相同。在相關表中使用GUID之前,每個導入程序都必須打開WebPage表才能將URL從URL轉換爲GUID。 – 2008-10-05 16:05:10