所以我很想知道是否值得在具有大约30M行数据的堆表上创建聚簇索引。在此之前,它不会在我们拥有的任何应用程序中使用,但现在我们正在创建一个应用程序来查询该表。
我之所以要问它是否值得,是因为我们正在创建的应用程序基本上是在进行这种类型的查询。
SELECT *
FROM [table];
我要离开*代表我们基本上都在拉所有领域。
所以我的问题是,即使我们要为我们的应用程序选择所有字段和行,是否值得在没有一个表的表上创建聚簇索引?
感谢您提供任何信息/建议。
答案 0 :(得分:1)
不,不值得。如果要运行没有select
子句的where
,聚簇索引只会向页面文件添加更多数据,具体取决于您为索引选择的内容(这完全取决于您的数据) )。创建更大的表扫描。在许多情况下,堆表是实际上更好的性能(如果您只是从表中获取所有行而不使用某种类型的连接/ wheres / filter子句),因为它存储在较少的页面文件中。
拥有聚簇索引,如果没有使用它也会在更新/创建表上的统计数据和执行插入(页面拆分)时承担一些开销
因此,如果你不打算使用索引,并且不打算在你的桌子上过滤,那么没有索引你会更好