PHP 高效分布代码转的

在《efficient pagination using mysql》中提出的clue方式。

利用clue方法,给翻页提供一些线索,比如还是SELECT * FROM `csdn` order by id desc,按id降序分页,每页2000条,当前是第50页,当前页条目id最大的是102000,最小的是100000。如果我们只提供上一页、下一页这样的跳转(不提供到第N页的跳转)。

那么在处理上一页的时候SQL语句可以是:
SELECT * FROM `csdn` WHERE id<=102000 ORDER BY id DESC LIMIT 2000; #上一页
耗时:0.015ms

处理下一页的时候SQL语句可以是:
SELECT * FROM `csdn` WHERE id>102000 ORDER BY id ASC LIMIT 2000; #下一页
耗时:0.015ms

这样,不管翻多少页,每次查询只扫描20行。效率大大提高了!

但是,这样分页的缺点是只能提供上一页、下一页的链接形式。

时间: 2024-09-30 19:33:25

PHP 高效分布代码转的的相关文章

学习PHP精粹,编写高效PHP代码之自动测试

如果要制造出完美的产品,必须对它进行全方面检验测试.这里有几种类型的测试,每一种测试都针对应用程序的某个具体方面. 本文将对单元测试.数据库测试.系统测试.负载测试进行介绍. 一.单元测试 单元测试是测试应用程序的每一步,要确保其各个组成部分运转正常.若没有单元测试,在应用程序中找出导致错误运行的原因一般来说相当困难. 单元测试通常采用一个单元测试框架,它提供了编写和运行测试并输出结果所需要的基本结构. 一些较为常用的单元测试框架包括: PHPUnit:http://phpunit.de/ Si

如何编写高效android代码

基于Android相关设备作为嵌入式设备范畴,在书写App应用的时候要格外关注效率,并且受电池电量的限制.这就导致嵌入式设备有诸多考虑.有限处理能力,因此就要求我们尽量去写高效的代码.本文讨论了很多能让开发者使他们的程序运行更有效的方法,遵照这些方法,你可以使你的程序发挥最大的效力. 引言 对于占用资源的系统,有两条基本原则: 不要做不必要的事 不要分配不必要的内存 所有下面的内容都遵照这两个原则. 1.避免建立对象 世界上没有免费的对象.虽然GC为每个线程都建立了临时对象池,可以使创建对象的代

学习PHP精粹,编写高效PHP代码之安全性

一.过滤输入.避免输出 有时我们将短语"过滤输入.避免输出"缩写为FIEO,这已成为PHP应用程序的安全真言. 1.利用ctype进行验证 ctype:http://php.net/ctype 2.利用PCRE(Perl兼容的正则表达式)进行验证 PCRE:http://php.net/pcre 二.跨站脚本 跨站脚本通常简称为XSS,攻击载体以在应用程序输出中由用户提供的变量所在位置为目标,但该变量没有适当地转义.这允许攻击者注入他们选择的一个客户端脚本作为这个变量值的一部分.下面是

用python编写一个高效搜索代码工具

用python编写一个高效搜索代码工具大多码农在linux环境下使用grep+关键词的命令搜索自己想要的代码或者log文件.今天介绍用python如何编写一个更强大的搜索工具,windows下也适用.我们的需求:1, 可以同时指定多个关键词.比如某个文件某一行中有"error: aa bb cc",如果检索关键词error和cc则可以显示该行,避免单一关键词冗余信息太多2, 可以排除某些关键词.对于"error: aa bb cc" ,如果设定排除bb,则不予显示该

带你玩转Visual Studio——带你高效管理代码

上一篇文章带你玩转Visual Studio--带你高效开发通过对VAssistX优秀插件的讲解,让我们掌握了快速开发C++代码的技能.然而大部分的程序都不是一个人的开发的,是由一个团队的多个人一起开发的,大型的系统还可能由多个不同的团队分包进行开发.多人进行协作开发时,代码的管理就显得及为重要,需要借助代码管理工具的辅助,这种工具又称为版本控制系统. 目前主流的版本控制系统有: CVS:是一个用于代码版本控制的自由软件,它是一个比较早出现的工具,由于它有很多自身的缺陷,现在几乎被SVN所取代了

高效JQuery代码编写

缓存变量 DOM遍历是昂贵的,所以尽量将会重用的元素缓存. // 糟糕 h = $('#element').height(); $('#element').css('height',h-20); // 建议 $element = $('#element'); h = $element.height(); $element.css('height',h-20); 避免全局变量 jQuery与javascript一样,一般来说,最好确保你的变量在函数作用域内. // 糟糕 $element = $(

C#高效分页代码(不用存储过程)

首先创建一张表(要求ID自动编号): create table redheadedfile ( id int identity(1,1), filenames nvarchar(50), senduser nvarchar(50), primary key(id) ) 然后我们写入50万条记录: declare @i int set @i=1 while @i<=500000 begin insert into redheadedfile(filenames,senduser) values(&qu

打造可高效维护代码的几个原则

来源:http://blog.csdn.net/lezhiyong 1      问题 1.1                  工程 功能越来越多,逻辑越来越复杂,模块越来越混乱.架构越来越复杂 常见问题: 1.模块A发消息给其他模块处理,B模块->转发消息给C->转发给D->转发给A 2.初始头文件功能定义清晰,越到后面里面东西越混乱. 3.各模块内重复实现基础功能. 1.2                  个人开发 1.对前人代码: 不能理解前人代码的思想,新功能自成一套体系.

谋篇布局:高效形成代码的心得

??背字词句和写文章不同.在我们中国,一名学生需要经过十几年时间的练习,来实现从字词句到文章之间的跨越.类似的差距和迭代同样存在于学习开发的过程中.以完成代码段为目标和以完成项目为目标,二者之间存在着的巨大差别,直观地表现为开发者的效率. ??"开发者效率",或多或少都和开发者主观能动性有关,很多专家的书籍都系统地探讨了这个问题.通常认为,单纯依靠量化方法来评估开发者的效率不靠谱.以笔者作为一名普通码农的心得而言,觉得效率很大程度受限于自身习惯.在初步具有"谋篇布局"