在我的数据库中,有一个名为comments
的字段,其中显示帖子中有多少条评论。到目前为止,我在检索所有评论时一直使用LIMIT
具有特定金额,但我担心如果这是一个很快添加/删除评论的热门帖子,可能会导致不准确。
我的问题是,在检索评论时,让我们说,是一个上边界好用吗?网站只查询整个表吗?我使用LIMIT
,因为我认为它会更有效率,但是真的有区别吗?
提前致谢。
答案 0 :(得分:0)
您可以使用30
查询第一个LIMIT
条评论(比方说),以及使用COUNT
查询属于您帖子的评论总数。现在,根据该计数建立分页链接。
现在,只要用户点击页码n
,就可以使用AJAX获取新评论并替换现有评论。为此,请使用LIMIT
和OFFSET
。
通过这种方式,您无需一次性提取该帖子的所有评论,同时,如果他们需要阅读更多信息,则可以为您的用户提供所需的评论。
最受欢迎的网站,我认为WordPress也使用此流程。
<强>更新强>
如果您使用的是load more
类,则无需运行COUNT
查询。只需加载前30个注释,并使用基于ajax的解决方案来获取接下来的30个查询,然后冲洗并重复,除非sql返回空结果。
在每个ajax请求中,偏移量应增加30
(在本例中),但每次限制应保持在30
。
答案 1 :(得分:0)
您可以使用SQL_CALC_FOUND_ROWS
和FOUND_ROWS()
代替存储评论数量。
select语句示例:
SELECT SQL_CALC_FOUND_ROWS *
FROM comments
WHERE post_id = ?
ORDER BY id DESC
LIMIT 0, 10
当您运行此查询时,您将收到您的评论,并在该运行查询之后:
SELECT FOUND_ROWS()
将返回上一次查询中没有LIMIT的注释数。