我需要在网站上显示多页新闻。
我应该使用限制在db查询中进行分页,还是在获得所有结果后在我的php脚本中进行分页?

有帮助吗?

解决方案

在SQL中使用限制!每一次!

否则,您丢失的数据远远超出了您的需求,这会使您的脚本不必要地变慢,并且随着表中数据量的增加而导致可伸缩性问题。

限制是你的朋友!

其他提示

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

如果您只想使用支持此功能的DBMS,请在DBMS上执行此操作。如果您希望将来支持其他DBMS,则可以根据当前的DBMS添加一个可以处理的层。

您可以使用一些现有的库来帮助您:

Pear :: Pager 可以帮助输出,并将数据库流量限制为只有您需要的,您可以使用随附的示例中提供的包装。

这是一个教程我只是用谷歌搜索了这一切......

除了使用 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 )可以有效地处理分页通过其他自然键的记录,例如按名称或按日期顺序按字母顺序排列。

就个人而言,我会使用查询来完成它。显然,如果你处理AJAX等,这可能会改变,但只是在查询中做一个基本限制并输出结果是简单而有效的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top