Срочно надо разобратьбся с одним запросом, который ужасно тормозит мой форум, но в тоже время он 100% необходим.
SELECT COUNT(DISTINCT(t.tid)) as tcnt, COUNT(DISTINCT(p.pid)) as pcnt FROM ibf_posts p, ibf_topics t WHERE p.post_date < ".time()." AND p.post_date > ".$ibforums->member['last_visit']." AND p.topic_id=t.tid
Этот запрос выводит на главной странице "13 сообщений и 4 новых темы с последнего визита"
Вот сам хак в боардс.пхп:
if ($ibforums->member['id'])
{
$DB->query("SELECT COUNT(DISTINCT(t.tid)) as tcnt, COUNT(DISTINCT(p.pid)) as pcnt FROM ibf_posts p, ibf_topics t WHERE p.post_date < ".time()." AND p.post_date > ".$ibforums->member['last_visit']." AND p.topic_id=t.tid");
$row = $DB->fetch_row();
$data['topics_scince'] = $row[tcnt];
$data['posts_scince'] = $row[pcnt];
$t_html = $this->html->msg_stats($data);
$this->output = preg_replace( "/<!-- stats -->/" , "$t_html" , $this->output );
}
что надо! Надо упростить запрос. Траблы либо в COUNT(DISTINCT(t.tid)) либо еще в чем.
Писал давно, и брал его из welcome панели. Наверняка можно новый запрос, более легкий, сделать который показывает сколько тем и сообщений НОВЫХ было с момента последнего визита.
Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.
Вопрос
Total
Срочно надо разобратьбся с одним запросом, который ужасно тормозит мой форум, но в тоже время он 100% необходим.
Этот запрос выводит на главной странице "13 сообщений и 4 новых темы с последнего визита"
Вот сам хак в боардс.пхп:
что надо! Надо упростить запрос. Траблы либо в COUNT(DISTINCT(t.tid)) либо еще в чем.
Писал давно, и брал его из welcome панели. Наверняка можно новый запрос, более легкий, сделать который показывает сколько тем и сообщений НОВЫХ было с момента последнего визита.
Помогите плиз
Ссылка на комментарий
Поделиться на других сайтах
7 ответов на этот вопрос
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.