首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

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

2012-07-23 
两条速度相差1350倍的sql语句select *from RESOURCES whereRES_STATUS 1 and PLATFORM_FLAG1 andRES_ID

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

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毫秒

  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毫秒

?

?

相同的环境下,查出相同的结果速度相差1000倍

1 楼 houxinyou 2011-12-13   两个语句好像是不一样的吧? 2 楼 xuehanxin 2011-12-13   谢谢提醒,那个写博客的时候掉了 3 楼 wilddonkey 2012-01-06   两种写法都用过,
第一种一般用exists不用in,没感觉性能差异很大啊
不知道你的测试数据量。。。 4 楼 xuehanxin 2012-01-12   测试数据量一个表是10万多条记录一个是30w记录 5 楼 lei_1021 2012-01-14   废话,这效率当然不一样了,一个是两张表连接查询,一个是一张表每条记录在另一张表里遍历,效率能一样?
6 楼 xuehanxin 2012-01-29   被骂了号,偶一定记住各位大哥的话

热点排行