我需要在网站中显示许多新闻页面。LIMIT
获得所有结果后,我应该使用 PHP 脚本还是使用 PHP 脚本在数据库查询中进行分页?
Gero
问问题
3296 次
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 回答