扫码关注官方订阅号
php怎么对特别大的数据量进行分页
人生最曼妙的风景,竟是内心的淡定与从容!
一般分页写法是:
SELECT * FROM posts ORDER BY id DESC LIMIT $page_size OFFSET $offset
不过当$offset很大时,速度会比较慢.
这时可以尝试使用"上一页"和"下一页"进行分页,比如:60-41(上一页) 40-21(当前页) 20-01(下一页)下一页(旧文章20篇):
//page.php?id=-21 负数表示下一页旧文章 这里的21表示当前页最下面的文章的ID. SELECT * FROM posts WHERE id < 21 ORDER BY id DESC LIMIT 20;
上一页(新文章20篇):
//page.php?id=40 正数表示上一页新文章 这里的40表示当前页最上面的文章的ID. SELECT * FROM posts WHERE id > 40 ORDER BY id ASC LIMIT 20;
得到的是升序ID序列,PHP使用array_reverse反转数组实现降序输出.
觉得负数不好看的话,可以额外加一个参数,比如:page.php?action=next&id=21page.php?action=prev&id=40
上面说了一个解决方案,我再说一个 延迟关联查询。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
一般分页写法是:
不过当$offset很大时,速度会比较慢.
这时可以尝试使用"上一页"和"下一页"进行分页,比如:
60-41(上一页) 40-21(当前页) 20-01(下一页)
下一页(旧文章20篇):
上一页(新文章20篇):
得到的是升序ID序列,PHP使用array_reverse反转数组实现降序输出.
觉得负数不好看的话,可以额外加一个参数,比如:
page.php?action=next&id=21
page.php?action=prev&id=40
上面说了一个解决方案,我再说一个 延迟关联查询。