php+mysql分页优化版


效果图:
1 <table align="center" cellspacing="2">
2 <?php
3 include(‘conn/conn2.php‘);
4 $pagesize=10;
5 $url=$_SERVER["REQUEST_URI"];//取当前url路径
6 $url=parse_url($url); //查询当前路径所以值
7 $url=$url[path];//查询当前路径path的值
8
9 $numq=mysql_query("select * from tb_article");
10 $num=mysql_num_rows($numq); //总数
11
12 if($_GET[page]){
13 $pageval=$_GET[page]; //获取当前页
14 $page=($pageval-1)*$pagesize; //从第几条记录开始
15 $page.=‘,‘;
16 }
17
18 $pageceil=ceil($num/$pagesize); //共有几页记录
19
20 $sql="select * from tb_article order by now desc limit $page $pagesize";
21 $query=mysql_query($sql);
22
23 while($res_article=mysql_fetch_array($query)){
24 ?>
25 <tr>
26 <td colspan="3" style="color:#00F">
27 <h3><div ><a href="user_article.php?id=<?php echo $res_article[‘id‘];?>"><div style=" border-radius:10px 10px 10px 10px;;text-align:center;-moz-box-shadow: 0 0 2px #888;
28 -webkit-box-shadow: 0 0 2px#888;
29 box-shadow: 0 0px 0px #EFEFEF;" class="article_little"><?php echo csubstr($res_article[‘title‘],0,100);?></div></a></div></h3></td>
30 </tr>
31 <tr>
32 <td colspan="3">
33 <div style="letter-spacing:3px;line-height:30px"><?php echo csubstr($res_article[‘content‘],0,85)."...";?></div></td>
34 </tr>
35 <tr>
36 <td style="color:#6CF"><a href="#"><?php if(isset($_SESSION["turename"])){ echo "我";}else{ echo $res_article[‘author‘];} ?></a></td>
37 <td style="color:#E1E1E1">发表于<?php echo $res_article[‘now‘] ?></td>
38 </tr>
39 <tr>
40 <td colspan="3"><br></td></tr>
41 <?php
42 }
43 ?>
44 <tr>
45 <td colspan="3"><br></td></tr>
46 </table>
47 <div style="text-align:center;margin-bottom:10px;">
48 <?php
49
50 if($num>$pagesize){
51 if($pageval<=1){
52 $pageval=1; //当前页<1,则重置当前页为1
53 }else
54 echo "<a href=$url?page=".($pageval-1)."><</a>&nbsp&nbsp&nbsp&nbsp";
55
56 if($pageceil>7){ //如果记录页数超过7页,则执行以下
57 for($i=1;$i<=7;$i++){
58 if($i==$pageval){ //判断如果是当前页,则显示当前页的$i不能被点击
59 echo "$i&nbsp&nbsp";
60 }else
61 echo "<a style=‘width:50px;border-radius:20%;box-shadow:0 1px 2px #000;‘ href=$url?page=".$i.">$i</a>&nbsp&nbsp"; //显示出除当前页,其他页的超链接
62 }
63 $i=$pageceil-2;
64 echo "....&nbsp&nbsp";
65 for($i;$pageceil>=$i;$i++){ //判断查询出后三页并显示
66 if($i==$pageval){ //判断如果是当前页,则显示当前页的$i不能被点击
67 echo "$i&nbsp&nbsp";
68 }else
69 echo "<a style=‘width:50px;border-radius:20%;box-shadow:0 1px 2px #000;‘ href=$url?page=".$i.">$i</a>&nbsp&nbsp"; //显示出除当前页,其他页的超链接
70
71 }
72
73 }else{
74 for($i=1;$i<=$pageceil;$i++){ //如果记录页数超过7页,则正常显示
75
76
77 if($i==$pageval){ //判断如果是当前页,则显示当前页的$i不能被点击
78 echo "$i&nbsp&nbsp";
79 }else
80 echo "<a style=‘width:50px;border-radius:20%;box-shadow:0 1px 2px #000;‘ href=$url?page=".$i.">$i</a>&nbsp&nbsp"; //显示出除当前页,其他页的超链接
81
82
83 }
84
85 }
86
87 if($pageceil>$pageval) //总页数大于当前页,就显示下一页
88 echo "&nbsp&nbsp<a href=$url?page=".($pageval+1).">></a>&nbsp&nbsp&nbsp&nbsp";
89
90 }
91
92 ?>
93
94 </div>

php+mysql分页优化版

时间: 2024-12-12 17:11:44

php+mysql分页优化版的相关文章

MySQL分页优化中的“INNER JOIN方式优化分页算法”到底在什么情况下会生效?

本文出处:http://www.cnblogs.com/wy123/p/7003157.html 最近无意间看到一个MySQL分页优化的测试案例,并没有非常具体地说明测试场景的情况下,给出了一种经典的方案,因为现实中很多情况都不是固定不变的,能总结出来通用性的做法或者说是规律,是要考虑非常多的场景的,同时,面对能够达到优化的方式要追究其原因,同样的做法,换了个场景,达不到优化效果的,还要追究其原因.个人对此场景在不用情况表示怀疑,然后自己测试了一把,果然发现一些问题,同时也证实了一些预期的想法.

MYSQL 分页慢加速器 解决方案 MYSQL 分页优化 MYSQL 分页解决方案 LIMIT 优化

无论你是InnoD引擎LIMIT分页慢还是MyISAM引擎LIMIT分页慢,大伙SELECT查询分页一般都是这样的[数据总共2万条,需要查询3个字段]: SELECT `id` , `url` , `content` FROM `product` WHERE 1 ORDER BY `id` LIMIT 10000 , 100 执行速度是: 45.7秒 哈哈,慢的掉渣吧! 作者LET再次隆重推荐 MySql LIMIT 分页查询加速利器解决方案: http://my.oschina.net/car

Mysql分页优化

在mysql中limit可以实现快速分页,但是如果数据到了几百万时我们的limit必须优化才能有效的合理的实现分页了,否则可能卡死你的服务器.当一个数据表中有几百万条数据的时候,就成问题了! 例如:SELECT * FROM student limit 0,10; 這个速度会很快,但是执行SELECT * FROM student limit 1000000,10;這个效率就及其低下了.这是为啥呢?原因是因为:当我们执行SQL语句的时候,一般都是从头开始查找也就是说,我们要查找10000020条

MySQL 分页优化

MySQL 用 LIMIT offset, length 进行分页.但当表记录数很大,会发现大页数的查询时间明显比小页数的查询时间大. MySQL并不是跳过 offset 行,而是取 offset+N 行,然后返回放弃前 offset 行,返回 N 行,当 offset 特别大的时候,效率就非常的低下 解决方式一:在业务上限制总页数. 解决方式二:借助索引,快速定位. 方式二是比较常用的. 示例:device_version_stat 表记录数很大,如果需要把该表的数据导出到 excel ,后面

mysql索引优化和sql语句优化

一.mysql索引分为btree索引和hash索引. btree索引是二叉树结构 先到索引树上找,再去根据索引到数据里边找数据. hash索引是memory引擎,精准查询非常快,如果查范围内(where>8),会比较慢.因为是无序的,无法使用前缀索引. 2.btree索引 建立索引,通常是经常用到做查询条件,做分组,做排序. 独立索引,单个建索引只能用一个索引,通常用联合索引. 如建了一个(a,b,c)的复合索引,那么实际等于建了(a),(a,b),(a,b,c)三个索引,因为每多一个索引,都会

MySql分页查询慢|这里告诉你答案

一.背景 我们在开发的过程中使用分页是不可避免的,通常情况下我们的做法是使用limit加偏移量:select * from table where column=xxx order by xxx limit 1,20.当数据量比较小时(100万以内),无论你翻到哪一页,性能都是很快的.如果查询慢,只要在where条件和order by 的列上加上索引就可以解决.但是,当数据量大的时候(小编遇到的情况是500万数据),如果翻到最后几页,即使加了索引,查询也是非常慢的,这是什么原因导致的呢?我们该如

MySQL 百万级分页优化(Mysql千万级快速分页)

以下分享一点我的经验 一般刚开始学SQL的时候,会这样写 : SELECT * FROM table ORDER BY id LIMIT 1000, 10; 但在数据达到百万级的时候,这样写会慢死 : SELECT * FROM table ORDER BY id LIMIT 1000000, 10; 也许耗费几十秒 网上很多优化的方法是这样的: SELECT * FROM table WHERE id >= (SELECT id FROM table LIMIT 1000000, 1) LIM

MySQL 百万级、千万级 分页优化

查询字段一较长字符串的时候,表设计时要为该字段多加一个字段,如,存储网址的字段 查询的时候,不要直接查询字符串,效率低下,应该查诡该字串的crc32或md5 如何优化Mysql千万级快速分页 Limit 1,111 数据大了确实有些性能上的问题,而通过各种方法给用上where id >= XX,这样用上索引的id号可能速度上快点儿.By:jack Mysql limit分页慢的解决办法(Mysql limit 优化,百万至千万条记录实现快速分页) MySql 性能到底能有多高?用了php半年多,

Mysql limit 优化,百万至千万级快速分页,--复合索引的引用并应用于轻量级框架

MySql 性能到底能有多高?用了php半年多,真正如此深入的去思考这个问题还是从前天开始.有过痛苦有过绝望,到现在充满信心!MySql 这个数据库绝对是适合dba级的高手去玩的,一般做一点1万篇新闻的小型系统怎么写都可以,用xx框架可以实现快速开发.可是数据量到了10万,百万至千 万,他的性能还能那么高吗?一点小小的失误,可能造成整个系统的改写,甚至更本系统无法正常运行!好了,不那么多废话了.用事实说话,看例子: 数据表 collect ( id, title ,info ,vtype) 就这