1.覆盖索引:select和where中包含的结果集中应存在“非聚集索引列”,这样就不用查找基表了,索引表即可搞定;
2.索引交叉:索引的交叉可以理解成建立多个非聚集索引之间的join,如表实体一样,因为每个非聚集索引都会保存两件东西 1是聚集索引键(存在的话,如果不存在就会存储实际表的行),2则是非聚集索引的键值。
3.索引连接:是索引交叉的特例(select l1,l2 from t_ where l1='asd' and l2='qwe');
4.索引过滤:在创建索引的时候加上特定的过滤条件;
备注:
create nonclustered index aaa on [111].[dbo].[SYS_Message]([Type],[Subject]) include ([status]) include包含进来的不会作为增加“键”的宽度
create nonclustered index ccc on [111].[dbo].[SYS_Message]([Subject])
索引过滤
例子如下 :
create nonclustered index aaa on [111].[dbo].[SYS_Message]([Type],[Subject]) where [Subject]=0