有一张表,里面数据是9000+,字段很少id
typeid            
hid(里面有很多重复数据,此字段类型为int)
size   
path
uploadtime      
descrip          
creator 
select path,uploadtime from pw_house_image where id in(SELECT MAX(id) AS id FROM pw_house_image GROUP BY hid) order by uploadtime desc limit 0,10
就上面的sql,一执行,就不懂了,过了30秒,mysql查询超时就停止了

解决方案 »

  1.   

    改成分部执行
    1
    create table tmp_tb SELECT MAX(id) AS id FROM pw_house_image GROUP BY hid) order by uploadtime desc limit 0,10;
    2
    select path,uploadtime from pw_house_image from pw_house_image A,tmp_tb  B where A.id = B.id;
    3
    drop table tmp_tb;
      

  2.   

    (1)hid(里面有很多重复数据,此字段类型为int)这列加索引了吗,如果这列重复数据多的话,最好不要加索引(2)limit 0,10
    如果用的话,最好不用0,10 这样 直接写 limit 10
      

  3.   

    select path,uploadtime 
    from pw_house_image a ,(SELECT MAX(id) AS id FROM pw_house_image GROUP BY hid) b
    where a.id=b.id
    order by uploadtime desc 
    limit 0,10