【发布时间】:2010-09-15 09:21:45
【问题描述】:
在 SQL Server 2005 中处理存储和索引 URL 的最佳方法是什么?
我有一个 WebPage 表,用于存储有关网页的元数据和内容。我还有许多其他与 WebPage 表相关的表。它们都使用 URL 作为键。
问题是 URL 可能非常大,使用它们作为键会使索引变得更大和更慢。多少我不知道,但我已经读过很多次使用大字段进行索引是要避免的。假设 URL 是 nvarchar(400),它们是用作主键的巨大字段。
有哪些选择?
使用 URL 作为键而不是较小的字段可能会有多大的痛苦。
我查看了具有标识列的 WebPage 表,然后将其用作 WebPage 的主键。这使所有相关的索引更小更高效,但它使导入数据有点痛苦。关联表的每次导入都必须先查找 url 的 id 是什么,然后再将数据插入表中。
我也尝试过在 URL 上使用哈希来创建更小的索引,但我仍然不确定这是否是最好的处理方式。它不会是唯一索引,并且会受到少量冲突。所以我不确定在这种情况下会使用什么外键......
数据库中将存储数百万条关于网页的记录,并且会有大量的批量更新。此外,还会有大量活动读取和汇总数据。
有什么想法吗?
【问题讨论】: