|
| |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
假如用一般的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查询得心得. 返回类别: 教程 上一教程: MYSQL进阶SELECT篇 下一教程: 怎样在PHP中通过ADO调用ASSCESS数据库和COM程序 您可以阅读与"SQL查询的分页思路"相关的教程: · MYSQL 查询中的分页思路的优化 · 利用MYSQL的一个特性实现MYSQL查询结果的分页显示 · SQL SERVER 2005提供的分页查询支持 · MYSQL常用查询的例子 · MYSQL让存储结果分页,用于复杂查询 |
| 快精灵印艺坊 版权所有 |
首页 |
||