例如,有一个包含列的表:ColumnA,ColumnB,ColumnC,ColumnD
并且有几个选项使用where子句:
ColumnA, ColumnB, ColumnC
ColumnA, ColumnC, ColumnD
ColumnA, ColumnB, ColumnD
目标是加快这些查询。但是我不想为所有列组合创建多列索引,因为它会占用很多位置并且可能会降低系统速度。
是否有意义为ColumnA创建索引?它会改善查询性能吗?
由于
答案 0 :(得分:0)
索引用作减少表扫描的方法"。您应该索引最常使用的列或列组合。如果这意味着使用2列,那很好。
还要记住,CLUSTERED索引是数据的物理页面排序。非集群不是。因此,任何聚集索引都会更有效率。您始终可以将最常用的字段设置为聚簇索引,并将非聚集索引放在不常用的字段上。
最后是关于数据的全部内容。我曾经使用超过1B记录的医疗保健表,索引在这样的环境中非常重要。