个人见解,索引的作用主要是体现在 where 这类的条件上.

解决方案 »

  1.   

    但是我自动递增的字段(也是主键,不就是自动加个索引吗?),如果去掉主键(也就是没了索引),则order by id的时间有几倍的差距,怎么这个字段就有区别呢?
      

  2.   

    如果你的自动递增的字段设置为聚集索引,由于聚集索引所对应的位置
    就是表中记录的物理位置,自然在进行Order by 和where 之类的操作时,速度就
    非常快,一张表只能设置一个聚集索引,所以在设置时要慎重,经常要更新的
    字段和变长的字段不宜设置为聚集索引.
       设置非聚集索引的字段对Order by 从理论上说多起作用.
      

  3.   

    那就是说聚集索引对order by有影响,而非聚集索引对oreder by是没影响的,对吗?还有个问题,如果一个表见、索引比较多,是不是有什么问题?
      

  4.   

    建立主键时,如果该表还没有聚集索引,则该主键自动建立为聚集索引,聚集索引中会建立物理顺序对应,一个表,不是索引越多越好,建立索引是以硬盘空间为代价的,根据where后面条件的需要,可以建立聚集复合索引。建议也可以参照查询分析器的“索引优化向导”
      

  5.   

    问:我测试一下order by后面的字段,设不设索引,所需要的时间,好象没有任何差别,是不是有自动递增字段的表,其他字段设索引也不起作用了?。
    答:不是其他索引不起作用而是在where后面引用的列会利用上索引,order by不会,另外select 后面要包含有索引的列问:还有个问题,字段是否有索引,是对where条件影响大还是order by影响大?
    答:对where条件影响,多order by应该是没有影响的问:如果一个经常用于查询的表,where后面的字段很多,而且跟order by后面的字段不同,该怎样设合理索引?
    答:肯定是根据where后面的字段来建立索引,order by 应该是无关紧要的