原句的sql是这样的:
“select DFVN from sparadata where StaID = :staId  and DTime <= :today order by DTime desc limit 1;”
是做java web项目的时候要查询离指定时间最近的一条数据的DFVN的值,today是指定时间的变量,通过debug调试时发现执行速度太慢
   高手们帮帮忙,比较急,有什么办法能优化下,或者能完成这个功能的情况下,改写也可以,感谢大家帮助

解决方案 »

  1.   

    StaID  DTime 分别加上索引试试  
      

  2.   


    CREATE INDEX part_of_name ON yourname(StaID,DTime );
      

  3.   

    直接连到MYSQL数据库贴出你的,(注意红字部分替换成你的实际值。)show index from sparadata;
    explian select DFVN from sparadata where StaID = :staId  and DTime <= :today order by DTime desc limit 1;
      

  4.   

    试一试建复合索引 (StaID,DTime,DFVN)
      

  5.   

    1、分析索引情况
    explian select DFVN from sparadata where StaID = :staId and DTime <= :today order by DTime desc limit 1;
    2、如果没有建复合索引 (StaID,DTime,DFVN),可以建一个
       像7楼说的复合索引 (StaID,DTime,DFVN)走了索引覆盖