索引键列和包含性列

一、主键必须是惟一性的,不必定就是汇集索引,咱们在建立主键时默认是设主键为汇集索引。可经过手动删除后从新建汇集索引。sql

二、sql语句是where先执行,而后再执行order by,因此咱们在建非汇集索引时要注意顺序而且where与order by里面的列都要在索引键列里面。select部份能够放在包含性列里面,但请注意索引大小的空间问题。排序

三、order by里面的升序和降序问题必定要和索引键列里面的同样。索引

 

例:select id,title from table1 where classid=123 order by created DESCit

状况一table

操做:建非汇集索引IX_A->索引键列为classid(升序降序无所谓)、created(必定要降序) class

注意索引键列中两个字段的前后顺序,两个键列缺一不可。select

执行:1.IX_A索引查找出ID,2.根据ID经过 键查找 找出title->返回结果sql语句

 

状况二方法

操做:建非汇集索引IX_B->索引键列为classid(升序降序无所谓)、created(必定要降序) ->添加包含性列id,titletab

注意索引键列中两个字段的前后顺序,两个键列缺一不可。

执行:1.IX_B索引查找->返回结果

 

以上两个方法若是created的排序弄错了,还将多一步,即:

状况一:1.IX_A索引查找出ID,2.根据ID经过 键查找 找出title,3.排序->返回结果

状况二:1.IX_B索引查找,2.排序->返回结果

相关文章
相关标签/搜索