PHP分页效率终结版(推荐)


Posted in PHP onJuly 01, 2013

这里仅展示出设计思路,具体安全问题,是否同步更新等可根据具体需求添加修改:
以前人们常用的PHP分页技术,通常都需要先统计出数据库中总信息条数才能判断出总页数并对其进行分页,,也就是说,每次分页要对数据库进行两次调用,在面临大数据量,高并发查询情况下是很不效率的,曾经一直为这个问题烦恼但都没想到合适的解决方法,今天突然在睡梦中 遇见奇迹...具体分析原理如下:(红色部分为优化后的区别,思路采用最原始的代码书写,为了照顾新人)
原始分页技术:包括许多开源程序也在使用的技术;
一般都是对数据库信息进行统计,然后调用分页类,进行分页,,每次都要经过2次数据库查询操作
例(原始分页技术):  每次都要进行2次数据库查询

    $sqlstr="select  count(*)  as total  from  tablename";
    $sql=mysql_query($sql) or die("error");
 $info=mysql_fetch_array($sql);  //第一次 数据库调用
    $total=$info["total"];//每次翻页都要进行 总信息条数 的数据库查询操作
    $pagesize=10; //每页显示数量
    $page=$_GET["page"]?max(intval($_GET["page"]),1):1;//当前页
    if($total){,
    $sql="select * from  tablename  limit "($page-1)*$pagesize",$pagesize";
    
$sql=mysql_query($sql) or die("error");//第二次数据库查询操作
    
$info=mysql_fetch_array($sql);

 do{


...............
            }while($info=mysql_fetch_array($sql));
            include("page_class.php");//调用分页类
            $url="url.php?page=" //假设当前页为 URL.PHP
            echo $get_page=new get_page($url,$total,$pagesize,$page); //URL 为要分页的URL地址
   }
   //优化后的分页技术(只需在第一次调用时进行信息统计即可)
    if(isset($_GET["total"])){   //只需要进行一次总信息条数的统计即可

 $total=intval($_GET["total"]);
 //以后的的总信息数量通过GET传递即可,节省了1/2的数据库负荷,,,,
    }else{
    
$sqlstr="select  count(*)  as total  from  tablename";
    
$sql=mysql_query($sql) or die("error");

 $info=mysql_fetch_array($sql);  //第一次 数据库调用
            $total=$info["total"];
    }//总信息条数
    $pagesize=10; //每页显示数量
    $page=$_GET["page"]?max(intval($_GET["page"]),1):1;//当前页
    if($total){
    
$sql="select * from  tablename  limit "($page-1)*$pagesize",$pagesize";
    
$sql=mysql_query($sql) or die("error");//第二次数据库查询操作
    
$info=mysql_fetch_array($sql);

 do{


...............
            }while($info=mysql_fetch_array($sql));
            include("page_class.php");//调用分页类

 $url="url.php?total=$total&page=" //假设当前页为 URL.PHP
            echo $get_page=new get_page($url,$total,$pagesize,$page); //URL 为要分页的URL地址
   }
PHP 相关文章推荐
追求程序速度,而不是编程的速度
Apr 23 PHP
PHP技术开发技巧分享
Mar 23 PHP
php printf输出格式使用说明
Dec 05 PHP
PHP导航下拉菜单的实现如此简单
Sep 22 PHP
php常用字符串处理函数实例分析
Nov 22 PHP
ThinkPHP自动完成中使用函数与回调方法实例
Nov 29 PHP
PHP7.0安装笔记整理
Aug 28 PHP
php session 写入数据库
Feb 13 PHP
Yii2中cookie用法示例分析
Jul 18 PHP
PHP实现上传多图即时显示与即时删除的方法
May 09 PHP
详解php curl带有csrf-token验证模拟提交方法
Apr 18 PHP
php中对象引用和复制实例分析
Aug 14 PHP
解析php防止form重复提交的方法
Jul 01 #PHP
PHP以指定字段为索引返回数据库所取的数据数组
Jun 30 #PHP
php设计模式之单例、多例设计模式的应用分析
Jun 30 #PHP
php获取$_POST同名参数数组的实现介绍
Jun 30 #PHP
深入解析php中的foreach问题
Jun 30 #PHP
浅析Apache中RewriteCond规则参数的详细介绍
Jun 30 #PHP
浅析关于PHP位运算的简单权限设计
Jun 30 #PHP
You might like
php中使用PHPExcel读写excel(xls)文件的方法
2014/09/15 PHP
PHP定时任务获取微信access_token的方法
2016/10/10 PHP
JavaScript类和继承 prototype属性
2010/09/03 Javascript
Jquery事件的连接使用示例
2013/06/18 Javascript
js/jquery去掉空格,回车,换行示例代码
2013/11/05 Javascript
Javascript 按位左移运算符使用介绍(
2014/02/04 Javascript
JQuery 使用attr方法实现下拉列表选中
2014/10/13 Javascript
js实现将选中值累加到文本框的方法
2015/08/12 Javascript
jquery实现在网页指定区域显示自定义右键菜单效果
2015/08/25 Javascript
EasyUI学习之Combobox级联下拉列表(2)
2016/12/29 Javascript
Bootstrap 填充Json数据的实例代码
2017/01/11 Javascript
JavaScript实现图片切换效果
2017/08/12 Javascript
如何编写一个完整的Angular4 FormText 组件
2017/11/18 Javascript
vue-router的钩子函数用法实例分析
2019/10/26 Javascript
文章或博客自动生成章节目录索引(支持三级)的实现代码
2020/05/10 Javascript
Javascript实现简易天数计算器
2020/05/18 Javascript
JS 逻辑判断不要只知道用 if-else 和 switch条件判断(小技巧)
2020/05/27 Javascript
JavaScript实现Tab标签页切换的最简便方式(4种)
2020/06/28 Javascript
vue实现div可拖动位置也可改变盒子大小的原理
2020/09/16 Javascript
[50:54]完美世界DOTA2联赛 GXR vs IO 第三场 11.07
2020/11/10 DOTA
简单的Python抓taobao图片爬虫
2014/10/26 Python
python脚本后台执行方式
2019/12/21 Python
Python selenium的基本使用方法分析
2019/12/21 Python
python字符串下标与切片及使用方法
2020/02/13 Python
Python Django中的STATIC_URL 设置和使用方式
2020/03/27 Python
纯CSS3实现表单验证效果(非常不错)
2017/01/18 HTML / CSS
美国一家全面的在线零售鞋类公司:SHOEBACCA
2017/01/06 全球购物
最新奶茶店创业计划书
2014/01/25 职场文书
家居装修公司创业计划书范文
2014/03/20 职场文书
小学生开学第一课活动方案
2014/03/27 职场文书
《孔繁森》教学反思
2014/04/17 职场文书
信访工作个人总结
2015/03/03 职场文书
2015年度优秀员工推荐信
2015/03/23 职场文书
社区重阳节活动总结
2015/03/24 职场文书
2015学校六五普法工作总结
2015/04/22 职场文书
运动会运动员赞词
2015/07/22 职场文书