Перейти к контенту
  • 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

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить на вопрос...

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

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

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

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

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

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

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

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