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