我需要在网站中显示许多新闻页面。我应该在数据库查询中使用LIMIT
进行分页,还是在获取所有结果后使用PHP脚本进行分页?
使用限制 - 如果可以避免,你不想将大量数据从数据库传输到脚本引擎。
在 SQL 中使用限制!每次都要使用!
否则,您会处理比实际需要更多的数据,这会使脚本变得不必要的缓慢,并且随着表中数据量的增加,会导致可扩展性问题。
限制是你的朋友!
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 等内容,情况可能会有所不同,但只需在查询中进行基本的限制并输出结果即可简单高效。