|
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,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
40805
|
|