Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Очень медленно работает запрос с подзапросом (seyfer) 11/12/2011 - 13:14:08
      Re: Очень медленно работает запрос с подзапросом (Akina) 11/12/2011 - 20:50:48
      Re: Очень медленно работает запрос с подзапросом (seyfer) 12/12/2011 - 05:57:15
      Re: Очень медленно работает запрос с подзапросом (seyfer) 12/12/2011 - 06:05:04
      Re: Очень медленно работает запрос с подзапросом (seyfer) 12/12/2011 - 06:54:28
      Re: Очень медленно работает запрос с подзапросом (seyfer) 12/12/2011 - 06:55:22

> Original message text:
> From: seyfer - 11/12/2011 - 13:14:08
> Subject:Очень медленно работает запрос с подзапросом
> -----------------
> Добрый день.
>
> Ситуация такая. Во первых мы имеем дело с большой таблицей debtors 3000-5000 записей. Мне нужно выбрать из этой таблицы записи только те, которые не входят в записи, получаемые другим запросом.
>
> Сам запрос
>
>
> $obz_query =
> "SELECT debtors.*, FROM_UNIXTIME(block_start_date) AS date
> FROM debtors
> WHERE users_id NOT IN(SELECT users_id FROM debtors, complete, notes
> WHERE block_start_date < compl_date AND compl_note = note_id
> AND n_abon_id = users_id AND is_juridical = 0)
> AND is_juridical = 0
> ORDER BY {$_SESSION['sort']} {$sort_by}
> LIMIT $start, $num";
>
>
>
> Complete - база с обработанными debtors.
> Notes - заметки к debtors.
>
> Соответственно через notes идет связь между Complete и Notes по compl_note = note_id AND n_abon_id = users_id.
> Сейчас в Complete и Notes по 500 записей но они будут расти до 10000 и больше.
>
> Нагрузка на сервер получается дикая.
>
> Как-то можно иначе составить запрос?
>


From: Akina - 11/12/2011 - 20:50:48
Subject:Очень медленно работает запрос с подзапросом
-----------------
1) 5000 - это ОЧЕНЬ МАЛЕНЬКАЯ таблица.
2) Здесь форум по MySQL - посему показывайте строку в $obz_query ПОСЛЕ выполнения подстановок. И в ОБЯЗАТЕЛЬНОМ порядке дайте алиасы ВСЕМ копия использованных таблиц, и ОБЯЗАТЕЛЬНО добавьте каждому полю алиас-идентификатор таблицы.
3) Покажите DDL используемых таблиц.

PS. Исходя из логики происходящего (вернее, той её части, которую удаётся понять), NOT IN легко заменяется на JOIN.


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
40805



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |