【发布时间】:2011-03-07 08:38:37
【问题描述】:
如果我要通过 Guids 查询表(不管 Guids 的碎片问题),将 Guid 作为聚集索引而不是非聚集索引或根本没有索引会更快吗?
这个问题来自只读的角度。我只是好奇特定 Guid 的搜索行之间的速度是否会有所提高,并且在有/没有索引或有/没有聚集索引的情况下会更快地完成搜索吗?
或者,我对下一个问题的答案相当肯定,但现在将 int 标识符应用于上一个问题。如果该表由该 int 聚集,搜索会更快吗? (这是不是被表中的其他项目聚集在一起?)
我知道关于这个主题还有很多其他问题,但我没有在这些问题中找到我正在寻找的具体答案:
Should a Sequential Guid primary key column be a clustered index?
Improving performance of cluster index GUID primary key
Clustered primary key on unique identifier ID column in SQL Server
uniqueidentifier with index
Should I get rid of clustered indexes on Guid columns
感谢您的帮助!
【问题讨论】:
-
比什么更快?我认为替代方案是非聚集覆盖索引?
-
太棒了!我会像魔鬼一样避免将 GUID 作为 SQL Server 中的聚集索引!不要这样做——即使这样搜索 GUID 更快——大多数其他操作都会以 GUID 作为 CK....
-
@Martin Smith - 我的意思是光栅比非聚集索引或根本没有索引@marc_s - 如果我专门讨论的话,我们谈论的其他操作将会变得爬行从表中读取?
标签: sql guid clustered-index