Новости
Документация
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: seyfer - 12/12/2011 - 06:54:28
Subject:Очень медленно работает запрос с подзапросом
-----------------
Мне уже подсказали на другом форуме:

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 DATE DESC
LIMIT 0 , 20

Отлично работает!

Мой запрос с NOT IN - Showing rows 0 - 19 (20 total, Query took 2.8619 sec)

запрос с LEFT JOIN
Showing rows 0 - 19 (20 total, Query took 0.0606 sec)


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

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

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



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