5

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

4

6 回答 6

10

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

于 2008-09-20T19:06:44.760 回答
10

在 SQL 中使用限制!每次!

否则,您会抛出比您需要的更多的数据,这会使您的脚本不必要地变慢,并且随着表中数据量的增加会导致可伸缩性问题。

极限是你的朋友!

于 2008-09-20T19:09:45.767 回答
2

如果您只想使用支持此功能的 DBMS,而不是在 DBMS 上使用。如果您希望将来支持其他 DBMS,则在其之间添加一个可以根据当前 DBMS 处理的层。

于 2008-09-20T19:11:33.220 回答
2

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

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

这是我刚刚在谷歌上搜索的一个教程,其中包含所有内容......

于 2008-09-20T20:25:08.940 回答
1

除了 using 之外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)允许您有效地处理使用其他自然键的记录分页,例如按名称字母顺序或按日期顺序。

于 2009-01-07T18:58:37.927 回答
0

就个人而言,我会使用查询来做到这一点。显然,如果您处理 AJAX 等,情况可能会发生变化,但只需在查询中进行基本限制并输出结果即可简单而高效。

于 2008-09-20T19:08:48.033 回答