永发信息网

数据库开发分页的思路

答案:2  悬赏:60  手机版
解决时间 2021-05-13 21:17
数据库开发分页的思路
最佳答案
如果用一般的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(*) 来获取记录总数,速度页还过得去,不过感觉要慢一截,特别是记录集很多得情况,不过这样占用得内存很小得.

希望能帮到你。

全部回答

写个存储过程,看下面这个简单语句吧

每页10条,这是第2页的10条(10-20行)

select top 10 from table where id not in(select top 10 from table order by id) order by id

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
世界上一共有多少种篮球联赛?详细点、谢了。
大同区林源海尔专卖店地址在哪,我要去那里
梦幻40J跑商行么,跑哪条路线
误会是什么?
潘姓有哪些名人?
请给我推荐几首美国的民谣或者乡村歌曲?
可能很简单的数学题。
泰来县运祥宾馆怎么去啊,谁知道地址啊
说说你听过最感动的话。或亲身遇到的感动的场
DNF国服死灵术士的主动觉醒应该加多少好?有
有谁知道全运会的篮球赛场在哪吗?
,,我无语,,男的洗澡有啥好看的啊,,队友
高中辽宁省的必背64首古诗词是??
太康县名豪酒店地址在什么地方,想今天过去办
数学如何才能学好?紧急求助
推荐资讯
诛仙2 宠物光明火
青山区武汉市第四十九中学中学生团校地址在哪
清晨,林中鸟儿叫声清脆,有如
今年天气冷吗
问道18级别内丹怎么炼化来?用什么材料或去那
怎么样才能变得冷漠,不屑一顾。
真爱如血第三季剧情介绍|分集剧情介绍全集在
求人帮做像素120乘150且小于20K的小说封面图
对于去掉妊娠纹有何妙法?,有什么可以帮助消
微笑礼仪口号
7篇古诗赏析要求做内容,写作手法及表达感情
如何拉韧带,给个拉韧带教学视屏
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?