gpt4 book ai didi

php - 计算论坛上的线程帖子数

转载 作者:行者123 更新时间:2023-11-30 23:31:31 26 4
gpt4 key购买 nike

我有一个论坛,其中包含帖子标题、帖子数和其他信息。我已经设法优化其他查询/完全删除它们,但是计算每个线程的帖子计数的查询正在减慢主板页面的加载速度。

echo $boards->getPostCount($thread)

getPostCount($thread) 里面只是:$query = $this->db->query("SELECT COUNT(id) FROM forum_posts WHERE threadid = '$thread'

这是一个问题,因为它必须为每个线程执行此操作,并且每页有 20 个线程。

是否有任何其他方法可以预先获取此信息或以某种方式最大限度地减少获取此信息所需的查询?在任何给定时间都有 150 个用户在线,所以每次加载页面 3K 查询不是我想要的。

谢谢。

编辑:我被要求使用的查询的 EXPLAIN: mysql explain http://screensnapr.com/e/01hulx.png

最佳答案

使用连接:

SELECT  t.*, COUNT(fp.id)
FROM threads t
LEFT JOIN
forum_posts fp
ON fp.threadid = t.id
ORDER BY
t.last_updated DESC
LIMIT 20

但是,这仍然需要引擎在每次重新加载时计算每个线程的帖子数。

您可以启用查询缓存(它非常适合这样的查询)或者只是将 post_count 字段添加到 threads 并在每次发布或删除帖子时更新它.

关于php - 计算论坛上的线程帖子数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10357589/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com