Перейти к контенту
  • 0

Есть вопросы по поводу оптимизации запросов )


TAPAKAH2

Вопрос

Всем привет )

файл: /forum/sources/Forums.php

 

Вот код:

        if ( ($ibforums->vars['show_user_posted'] == 1) and ($ibforums->member['id']) )
       {
            (а)
       }
       else
       {
            (б)
       }

 

В нём есть 2 запроса:

 

а) выполняется 2.7476 сек.

$query = "SELECT DISTINCT(ibf_posts.author_id), t.*, p.post FROM ibf_topics t
LEFT JOIN ibf_posts ON (t.tid=ibf_posts.topic_id AND ibf_posts.author_id=".$ibforums->member['id'].")
LEFT JOIN ibf_posts p ON (t.tid = p.topic_id AND p.new_topic = 1)
WHERE t.forum_id=".$this->forum['id']." and t.approved=1
and (t.pinned=1 or t.last_post > $Prune)";

б) выполняется 0.1474 сек.

$query = "SELECT t.*, p.post FROM ibf_topics t
LEFT JOIN ibf_posts p ON (t.tid = p.topic_id AND p.new_topic = 1)
WHERE t.forum_id=".$this->forum['id']." and t.approved=1
and (t.pinned=1 OR t.last_post > $Prune)";

 

Какая между ними разница? Возвращают вроде бы одно и тоже. Я чёт не могу понять...

Ссылка на комментарий
Поделиться на других сайтах

Рекомендуемые сообщения

  • 0

Более тяжелый запрос нужен вроде бы для того, чтобы пометить "свои" сообщения в форуме.

Но у меня совсем другие цифры, 0.01 и 0.04...

И сами запросы чуть другие:

if ( ($ibforums->vars['show_user_posted'] == 1) and ($ibforums->member['id']) )
	{
		$query = "SELECT DISTINCT(ibf_posts.author_id), ibf_topics.* FROM ibf_topics
				   LEFT JOIN ibf_posts ON 
				   (ibf_topics.tid=ibf_posts.topic_id AND ibf_posts.author_id=".$ibforums->member['id'].")
				   WHERE ibf_topics.forum_id=".$this->forum['id']."
				   and ibf_topics.approved=1
				   and (ibf_topics.pinned=1 or ibf_topics.last_post > $Prune)";
	}
	else
	{
		$query = "SELECT * from ibf_topics WHERE forum_id=".$this->forum['id']." and approved=1 and (last_post > $Prune OR pinned=1)";
	}

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.