Fastest way to check how many posts are in a thread with MySQL and PHP
-
19-08-2019 - |
Question
I was wondering if it which is faster when trying to, for example, check how many posts are in a particular thread on a forum. Should I...
(a) Go through each post in the database with the particular thread ID, and count how many rows
or
(b) Add one to a separate column in the threads database every time a thread is made, and then query that single row
Thanks.
Solution
What's wrong with having an index for the thread ID? Wouldn't a simple COUNT expression grouped by the thread ID field suffice?
With any caching at all, this would be plenty fast from what I can tell.
--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;
OTHER TIPS
Premature optimization is the root of all evil.
Use solution (a) to start, and then, IF your site needs it, switch to solution (b).
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow