【发布时间】:2011-07-23 19:25:42
【问题描述】:
我在 SQL Server 数据库中有一个表,我希望能够尽可能快地搜索和检索数据。我不关心插入表格需要多长时间,我只关心我可以获取数据的速度。
问题是使用 20 种或更多不同类型的查询访问该表。这使得添加专门为每个查询设计的索引成为一项繁琐的任务。我正在考虑简单地添加一个包含表的所有列的索引。这不是你在“好”数据库设计中通常会做的事情,所以我假设我不应该这样做是有充分理由的。
谁能告诉我为什么我不应该这样做?
更新:我忘了提,我也不关心我的数据库的大小。没关系,这意味着我的数据库大小将增长到超过所需的大小
【问题讨论】:
-
“为什么我不能简单地添加一个包含所有列的索引?” 那不就是……表格吗?
-
@T.J.Crowder 是,但不完全是。
-
@T.J.Crowder -- 列的顺序非常重要。一个简单的示例是在一个多:多映射表中,您需要在其中双向进行。参见示例here。
标签: sql sql-server indexing non-clustered-index