使用MySQL和PHP检查线程中有多少帖子的最快方法

Log*_*man 3 php mysql optimization query-optimization

我想知道它是否更快在尝试时,例如,检查论坛上特定帖子中有多少帖子.我是不是该...

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

要么

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

谢谢.

Joe*_*ips 10

拥有线程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;
Run Code Online (Sandbox Code Playgroud)

  • 这是优化的标准方法.如果由于某种原因这很慢,那么下一个选项是将列添加到线程表中,并在那里使用每个新帖子更新的"帖子计数". (2认同)