【发布时间】:2010-10-09 04:40:03
【问题描述】:
据我所知,SQL Server 2008 只允许每个表有一个聚集索引。为了这个问题,假设我有一个用户提交的故事列表,其中包含以下列。
ID(整数,主键)
标题 (nvarchar)
网址 (nvarchar)
UniqueName (nvarchar) 这是 url slug (blah-blah-blah)
CategoryID (int, FK to Category table)
大多数情况下,故事永远不会通过 ID 进行查询。大多数查询将由 CategoryID 或 UniqueName 完成。
我是索引新手,所以我认为最好在此表上放置 2 个非聚集索引。一个在 UniqueName 上,一个在 CategoryID 上。在阅读了一些关于索引的内容之后,似乎在 UniqueName 上创建一个聚集索引会非常有益。考虑到 UniqueName is... unique 将主键放在 UniuqeName 上并摆脱 ID 字段是否有利?至于 CategoryID,我认为非聚集索引就可以了。
谢谢。
【问题讨论】:
标签: sql sql-server-2008 indexing