最优SQL分页

来源:互联网 发布:黑帽优化和白帽优化 编辑:程序博客网 时间:2024/05/16 05:29

 20是一页显示数据,60是第三页 3*20

 

select * from(select top 20 * from (select top 60* from product order by sortC desc,id desc) order by sortC asc,id asc) order by sortC desc,id desc//推荐

 

 

 

select  top 20 * from where id not in(select top 60 id from product order by sortC desc,id desc)//效率非常的低...

 

第一种是把数据都取出来,用排序取20条,

第二种是把数据取出来用NOT In去比对, 一个个去比对,效率非常的慢.. 我猜想应该是这样的:取60条记录,再用20条记录里的ID一个个去比较,应该是比较60*20次,如果数据量大,10000*20..可想而知了

 

 刚刚一个项目中发现