博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL查询的分页思路(转)
阅读量:2498 次
发布时间:2019-05-11

本文共 962 字,大约阅读时间需要 3 分钟。

SQL查询的分页思路:

如果用一般的SELECT * 查询SQL数据库,然后用recordset进行分页的话,在返回结果很多的情况下将会是一个漫长的过程,而且很消耗内存.你可能会有感觉,用access也比SQL快.
其实我们可以只取出我们每页需要显示的记录数,这样的速度是惊人的,非常快.这里我们会用到聚集索引来快速确定我们需要取出的记录数的位置.如下面:
if p>1 then 'p为PAGE页数
if n="next" then'下一页
="select top 26 * from song1 where id > "&pk&" and contains(songtitle,'"&songname&"')" 'PK为当前页的最大ID数
elseif n="prev" then'上一页
="select top 26 * from song1 where id < "&previd&" and contains(songtitle,'"&songname&"') order by id desc"'previd最小ID
end if
else
="select top 26 * from song1 where contains(songtitle,'"&songname&"')"'没有指定PAGE值,默认第一页
end if
这里用到了全文检索,速度也是很快的,我在52万记录下测试,最快可以46MS(机器C1.7. DDR 256M),感觉比较可以,我用like代码模糊查询页测试过,在结果集很多的情况下比全文更快,但是如果结果很少(整个表只有那么几条)将是漫长的过程,因为要对全表进行扫描!
按上面的方法不能得出所查询结果得总记录数,这里我们可以用select count(*) 来获取记录总数,速度页还过得去,不过感觉要慢一截,特别是记录集很多得情况,不过这样占用得内存很小得.
以上是我最近搞SQL查询得心得.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10294527/viewspace-122871/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10294527/viewspace-122871/

你可能感兴趣的文章
VS2010常用插件介绍之Javascript插件(一)
查看>>
python读入写入中文名图片
查看>>
Django学习之视图
查看>>
Odoo / PS Cloud12版本中,产品变体功能如何使用
查看>>
squid 学习笔记
查看>>
TF-IDF 加权及其应用
查看>>
xml和JSON格式相互转换的Java实现(转)
查看>>
网站压力测试工具webbench
查看>>
钉钉微应用发送消息
查看>>
GitHub的问题
查看>>
jQuery插件扩展extend的实现原理
查看>>
Windows NTLM Hash和Hash传递、Key传递攻击
查看>>
LeetCode 99. Recover Binary Search Tree
查看>>
linux iptables
查看>>
Url几个常用的函数
查看>>
[USACO09NOV]灯Lights
查看>>
sqlserver 关闭所有连接
查看>>
THINKphp学习笔记2
查看>>
poj 1200 Hash处理字符串(简单的rabin-karp)
查看>>
【ASP.NET】System.Web.Routing - PageRouteHandler Class
查看>>