Самый быстрый способ проверить, сколько сообщений в потоке с MySQL и PHP - PullRequest
3 голосов
/ 24 января 2009

Мне было интересно, если это быстрее, например, при попытке проверить, сколько сообщений в определенной теме на форуме. Должен ли я ...

(a) Просмотрите каждый пост в базе данных с определенным идентификатором потока и посчитайте, сколько строк

или

(b) Добавлять один в отдельный столбец в базе данных потоков каждый раз, когда создается поток, а затем запрашивать эту единственную строку

Спасибо.

Ответы [ 2 ]

10 голосов
/ 24 января 2009

Что не так с индексом для идентификатора потока? Разве недостаточно простого выражения 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;
3 голосов
/ 24 января 2009

Преждевременная оптимизация - корень всего зла.

Используйте решение (a) для запуска, а затем, если ваш сайт нуждается в нем, переключитесь на решение (b).

...