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




MySQL.RU - Webboard



Вернуться
SELECT .. WHERE ... IN (SELECT ... ) (Alexander) 08/12/2005 - 21:07:53
      Re: SELECT .. WHERE ... IN (SELECT ... ) (Dinky) 08/12/2005 - 23:10:32
      Re: SELECT .. WHERE ... IN (SELECT ... ) (Alexander) 09/12/2005 - 18:24:14
      Re: SELECT .. WHERE ... IN (SELECT ... ) (Dinky) 09/12/2005 - 19:52:38
      Re: SELECT .. WHERE ... IN (SELECT ... ) (Alexander) 10/12/2005 - 01:25:43
      Re: SELECT .. WHERE ... IN (SELECT ... ) (Dinky) 10/12/2005 - 03:23:26

> Original message text:
> From: Alexander - 08/12/2005 - 21:07:53
> Subject:SELECT .. WHERE ... IN (SELECT ... )
> -----------------
> Здравствуйте.
>
> Делаю запрос:
> SELECT ... FROM k WHERE k.`x`
> IN (
> SELECT l.`y`
> FROM l
> WHERE l.`z`=''
> )
> Запрос выполняется 0.5 секунд...
>
> Если запрос сначала выполнить вложенный запрос и тупо вписать полученные значения в IN, то запрос выполняется минимум раз в 10 быстрее... в чем проблема?
>
> Как заставить базу делать вложенный запрос только один раз?
>


From: Alexander - 09/12/2005 - 18:24:14
Subject:SELECT .. WHERE ... IN (SELECT ... )
-----------------
вот полный запрос:

SELECT SUM(l.`money`)
FROM `logs`.`2005-12` l
WHERE l.`type`='bal_mn'
AND
l.`user` IN (
SELECT ll.`login`
FROM `users`.`logins` ll
WHERE ll.`dog_num`='133'
)

Выставление SQL_CACHE не помогает. Конечно последующие запросы в лет выводит, но мне нужен быстрый результат с первого раза...

query cache type=ON;
EXPLAIN:
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY l ALL NULL NULL NULL NULL 23817 Using where
2 DEPENDENT SUBQUERY ll unique_subquery login login 10 func 1 Using index; Using where

Если делать EXPLAIN основного запроса (взять статическое значение IN), то получается:
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE l range user user 30 NULL 46 Using where



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

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

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



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