Индекс-страница мой форум выглядит следующим образом:MySQL: как ускорить этот запрос (включая подзапросы)?
| Forum | Topics | Answers |
----------------------------
| Forum A | 123 | 45678 |
| Forum B | 345 | 23128 |
| Forum C | 567 | 2328 |
Вот мой SQL-код, который работает до сих пор, но я думаю, что должно быть лучшим решением:
SELECT f.`id`, f.`name`, f.`description`, f.`type`,
(SELECT COUNT(`id`)
FROM threads
WHERE `forum_id` = f.`id`) AS num_threads,
(SELECT COUNT(p.`id`)
FROM threads t, posts p
WHERE p.thread_id = t.id
AND t.forum_id = f.id) AS num_posts
FROM `forums` f ORDER BY `position`
Как бы вы ускорить этот запрос? Любые альтернативы подзапросам?
Заранее благодарен!
Спасибо за ваш ответ, но он не работает - ошибка: # 1054 - Неизвестный столбец 'tc.RowCnt' в 'списке полей' –
Упс, забыли указать имена псевдонимов в подзапросах – Kickstart