两条速度相差1350倍的sql语句

一起来学习研究下,看看是什么导致的这么大差别:

SQL1:

select * from RESOURCES 
where RES_STATUS = 1 and PLATFORM_FLAG=1 and  RES_ID in (
    select RES_ID from DOWNLOADRECORDS
    where DOWNLOADRECORDS_TIME > DATE_SUB(now(),INTERVAL 7 DAY) 
    group by RES_ID 
    order by COUNT(*) desc 
) limit 1, 10;  


 这条语句查处结果需要20250毫秒

SQL2:

select bb.* from (
    select * from DOWNLOADRECORDS
    where 
    DOWNLOADRECORDS_TIME > DATE_SUB(now(),INTERVAL 7 DAY) 
    group by RES_ID 
    order by COUNT(*) 
    desc limit 1,10
) as aa,RESOURCES as bb  
where 
aa.RES_ID=bb.RES_ID 
and bb.RES_STATUS = 1 
and bb.PLATFORM_FLAG=1;

这条语句只需要15毫秒

你可能感兴趣的:(开发技巧经验分享,数据库)