select a.sun_newssys0,a.sun_newssys4,a.sun_newssys6 from sun_newssys a where (select count(*) from sun_newssys where sun_newssys0<a.sun_newssys0 and sun_newssys4=a.sun_newssys4)<10 and sun_newssys1=38 and sun_newssys4 in(1027,1028,1029,1030,1031,1032,1033,1034,1035) order by sun_newssys0 DESC

解决方案 »

  1.   

    EXPLAIN SQL语句,
    SHOW CREATE TABLE XXX
    贴结果
      

  2.   

    以文本方式贴出explain select ...
    show index from sun_newssys ;
      

  3.   

    1. 使用explain 看下2. 看下where条件中的字段是否有索引,若有使用explain看下使用这条语句,索引是否失效3. 可以将语句进行分拆为多条语句,使用临时变量等等
      

  4.   

    从语句上看,个人觉得可能有两处:1. select count(*) from sun_newssys where sun_newssys0<a.sun_newssys0 and sun_newssys4=a.sun_newssys42. in(1027,1028,1029,1030,1031,1032,1033,1034,1035)