一张表,目前数据1000万条
主要字段是ID, Date, Operator等等
无主键用select * from table where Date > 'x' and Date < 'Y'
耗时3分钟对Date做了聚集索引(或者非聚集索引)
同样的语句,检索时间同样需要3分钟,那 这个索引就没起作用了??请教,如何优化索引加快查询速度?

解决方案 »

  1.   


    select * from table where Date > 'x' and Date < 'Y'--这样的语句不应该再有的。select * from table where Date between 'x' and 'Y'
      

  2.   

    Date做聚集索引,语句改成:
    select * from table where date >= 'x' and date <= 'y'
      

  3.   

    用>=替代>
    高效:  
    SELECT * FROM EMP WHERE DEPTNO >=4  
    低效:  
    SELECT * FROM EMP WHERE DEPTNO >3  
    两者的区别在于, 前者DBMS将直接跳到第一个DEPT等于4的记录而后者将首先定位到DEPTNO=3的记录并且向前扫描到第一个DEPT大于3的记录.
      

  4.   

    我现在200万条数据量的情况下实验
    加不加索引检索效果都一样,200万条检索时间是22秒
    我这表没主键,在date字段加聚集索引