SQL查询的分页思路_MySQL数据库_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

SQL查询的分页思路

作者:黑客防线网安MYSQL维护基地 来源:黑客防线网安MYSQL维护基地 浏览次数:0

本篇关键词:思路查询
黑客防线网安网讯:    如果用一般的SELECT *  查询SQL数据库,然后用recordset进行分页的话,在返回结果很多的情况下将会是一个漫长的过程,而且很消耗内存.你可能会有感觉,用access也比SQL快.    其实我们可以只...

    如果用一般的SELECT *  查询SQL数据库,然后用recordset进行分页的话,在返回结果很多的情况下将会是一个漫长的过程,而且很消耗内存.你可能会有感觉,用access也比SQL快.

    其实我们可以只取出我们每页需要显示的记录数,这样的速度是惊人的,非常快.这里我们会用到聚集索引来快速确定我们需要取出的记录数的位置.如下面:

  if p>1 then 'p为PAGE页数

    if n="next" then'下一页
  sql="select top 26 * from song1 where  id  > "&pk&"  and contains(songtitle,'"&songname&"')"  'PK为当前页的最大ID数
    elseif n="prev" then'上一页
  sql="select top 26 * from song1 where  id  < "&previd&"  and contains(songtitle,'"&songname&"') order by id desc"'previd最小ID
    end if
else
  sql="select top 26 * from song1 where contains(songtitle,'"&songname&"')"'没有指定PAGE值,默认第一页
end if

    这里用到了全文检索,速度也是很快的,我在52万记录下测试,最快可以46MS(机器C1.7.  DDR 256M),感觉比较可以,我用like代码模糊查询页测试过,在结果集很多的情况下比全文更快,但是如果结果很少(整个表只有那么几条)将是漫长的过程,因为要对全表进行扫描!

    按上面的方法不能得出所查询结果得总记录数,这里我们可以用select count(*) 来获取记录总数,速度页还过得去,不过感觉要慢一截,特别是记录集很多得情况,不过这样占用得内存很小得.

    以上是我最近搞SQL查询得心得.

    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-8396-1.html
网站维护教程更新时间:2012-03-20 04:55:21  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer