您现在的位置: ::黎苑教育:: >> 电脑技术 >> 数据库开发 >> MySQL教程 >> 实例技巧 >> 文章正文
最新热门教程
最新推荐教程
SQL查询的分页思路           
SQL查询的分页思路
副标题:
作者:佚名    文章来源:不详    点击数:    更新时间:2006-7-16


如果用一般的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查询得心得.



文章录入:郭磊    责任编辑:郭磊 
  • 上一篇文章:
  • 下一篇文章: 没有了
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    (只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    加入收藏 | 设为首页 | 联系站长 | 友情链接 | 版权申明 | 管理登录 | 

    管理员:青蛙|感谢 淮北教育 友情支持 | 皖ICP备06000114号

    Email:admin@hbly.net QQ:15655475| 电话:0561-3192660

    黎苑教育
    All Rights Reserved (C) Copyright 2006