声明在最前面:本身理论基础较差;大神别见怪。
表table
1、ID为主键,非聚集索引。
2、假设有3000条数据。
3、在做分页时,使用TOP方法的话,需要使用到ID的“<、>”。
select * from 表table where ID>=201 and ID<=210
--如果每页10条数据的话
--也就是取出第21页
问题:
如果ID是聚集索引主键,那么毫无疑问,肯定可以大幅度地减少记录集的产生。
但如果ID是非聚集索引的主键呢?
------解决方案--------------------
非聚集索引同样能大幅度减少记录集的产生。。。。哥,你这句话不是性能问题啊。减少数据量是where条件的“功能”,你应该问是否能减少时间吧?
------解决方案--------------------
介个么有关系吧?lz要问的是查询效率??
关键还在于你的where 条件和select出来的东西是否能完全的利用到索引。
------解决方案--------------------
非聚集的主键
做为条件,典型的问题就是 会出现二次查找
也就是select 后面的字段很可能不在索引中
这个时候不得不通过主键进行二次查找,以找到所需的数据