一张表,目前数据1000万条
主要字段是ID, Date, Operator等等
无主键用select * from table where Date > 'x' and Date < 'Y'
耗时3分钟对Date做了聚集索引(或者非聚集索引)
同样的语句,检索时间同样需要3分钟,那 这个索引就没起作用了??请教,如何优化索引加快查询速度?
主要字段是ID, Date, Operator等等
无主键用select * from table where Date > 'x' and Date < 'Y'
耗时3分钟对Date做了聚集索引(或者非聚集索引)
同样的语句,检索时间同样需要3分钟,那 这个索引就没起作用了??请教,如何优化索引加快查询速度?
select * from table where Date > 'x' and Date < 'Y'--这样的语句不应该再有的。select * from table where Date between 'x' and 'Y'
select * from table where date >= 'x' and date <= 'y'
高效:
SELECT * FROM EMP WHERE DEPTNO >=4
低效:
SELECT * FROM EMP WHERE DEPTNO >3
两者的区别在于, 前者DBMS将直接跳到第一个DEPT等于4的记录而后者将首先定位到DEPTNO=3的记录并且向前扫描到第一个DEPT大于3的记录.
加不加索引检索效果都一样,200万条检索时间是22秒
我这表没主键,在date字段加聚集索引