如何在PHP中分页结果是最佳方式?

5

我需要在网站中显示许多新闻页面。我应该在数据库查询中使用LIMIT进行分页,还是在获取所有结果后使用PHP脚本进行分页?

6个回答

10

使用限制 - 如果可以避免,你不想将大量数据从数据库传输到脚本引擎。


10

在 SQL 中使用限制!每次都要使用!

否则,您会处理比实际需要更多的数据,这会使脚本变得不必要的缓慢,并且随着表中数据量的增加,会导致可扩展性问题。

限制是你的朋友!


2
如果你只想使用支持此功能的DBMS,那么请在DBMS上进行操作。如果你将来想要支持其他DBMS,则需要添加一个层来处理当前DBMS的情况。

2
您可以使用一些现有的库来帮助您:
Pear::Pager 可以帮助输出,并且为了限制数据库流量仅限于您需要的内容,您可以使用它附带的示例中提供的包装器。
这里是我刚刚在谷歌上搜索到的一个 教程,其中包含所有信息...

1
除了使用 LIMIT,我建议使用显式的WHERE子句来设置偏移量,并按该列对结果进行排序。例如:
--- First page (showing first 50 records)
SELECT * FROM people ORDER BY id LIMIT 50
--- Second page
SELECT * FROM people WHERE id > 50 ORDER BY id LIMIT 50

这进一步限制了返回的行数,仅限于所需范围内的行。使用WHERE方法(而不是一个带有单独偏移量的LIMIT子句,例如LIMIT 50,50),可以有效地处理通过其他自然键分页记录,例如按名称字母顺序或按日期顺序。

0

个人而言,我会使用查询来完成它。显然,如果你处理 AJAX 等内容,情况可能会有所不同,但只需在查询中进行基本的限制并输出结果即可简单高效。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接