【问题标题】:Fastest way to check how many posts are in a thread with MySQL and PHP使用 MySQL 和 PHP 检查线程中有多少帖子的最快方法
【发布时间】:2010-10-03 07:11:31
【问题描述】:

我想知道在尝试例如检查论坛上的特定主题中有多少帖子时,哪个更快。我应该...

(a) 使用特定线程 ID 浏览数据库中的每个帖子,并计算行数

(b) 每次创建线程时,在线程数据库中的单独列中添加一个,然后查询该单行

谢谢。

【问题讨论】:

    标签: php mysql optimization query-optimization


    【解决方案1】:

    线程 ID 的索引有什么问题?按线程 ID 字段分组的简单 COUNT 表达式还不够吗?

    如果有任何缓存,据我所知,这将是非常快的。

    --This will provide counts for all threads
    SELECT COUNT(threadID)
    FROM Posts
    GROUP BY threadID;
    
    
    --This will provide count for one thread
    SELECT COUNT(threadID)
    FROM Posts
    WHERE threadID=123
    GROUP BY threadID;
    

    【讨论】:

    • +1 COUNT/GROUP BY 查询(加上线程 ID 上的索引)是解决此问题的正确方法。
    • SELECT count(*) FROM tableName GROUP BY threadID 以防万一。
    • 这是标准的优化方式。如果由于某种原因这很慢,那么下一个选项是将列添加到线程表中,并在那里有一个“帖子计数”,随着每个新帖子的更新。
    【解决方案2】:

    过早的优化是万恶之源。

    使用解决方案 (a) 开始,然后,如果您的网站需要,切换到解决方案 (b)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-25
      • 1970-01-01
      • 2011-11-08
      相关资源
      最近更新 更多