У меня есть форум, на котором есть название темы, количество сообщений и другая информация. Мне удалось оптимизировать другие запросы/удалить их полностью, но тот, который учитывает количество сообщений каждого потока, замедляет загрузку основной страницы.Подсчитайте количество сообщений на форуме
т.е. echo $boards->getPostCount($thread)
внутри getPostCount($thread)
всего: $query = $this->db->query("SELECT COUNT(id) FROM forum_posts WHERE threadid = '$thread'
Это проблема, потому что он должен делать это для каждого потока и есть 20 нитей на странице.
Есть ли другой способ получить эту информацию заранее или как-то минимизировать запросы, необходимые для получения этой информации? В настоящее время в настоящее время насчитывается 150 пользователей, поэтому 3K запросов на загрузку страницы - это не то, что я хочу.
Спасибо.
Изменить: EXPLAIN запроса я был дан использовать: mysql explain http://screensnapr.com/e/01hulx.png
Я пробовал это раньше, и выполнение такого запроса в основном убивает MySQL, и навсегда требуется возврат к результату. Итак, я не знаю, что-то не так с mysql или слишком большое количество сообщений (300 тыс. Сообщений, потоки 34 тыс.). – Steve
Я добавил соответствующие отношения между потоками и столбиком, и все прошло гладко. – Steve
@Tar: Создайте индекс на 'forum_threads (boardid, sticky, lastbump)' и еще один на 'forum_posts (threadid)'. – Quassnoi