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




MySQL.RU - Webboard



Вернуться
Как бы оптимизировать запрос с IN (AlexanderTV) 03/03/2011 - 14:04:13
      Re: Как бы оптимизировать запрос с IN (Akina) 03/03/2011 - 14:25:48
      Re: Как бы оптимизировать запрос с IN (AlexanderTV) 03/03/2011 - 19:32:24

> Original message text:
> From: AlexanderTV - 03/03/2011 - 14:04:13
> Subject:Как бы оптимизировать запрос с IN
> -----------------
> Есть таблица в которой хранятся коды покупаемых товаров и номера заказов ~130'000 записей.
> поля проиндексированы.
>
> goods_number, goods_code
>
> Делаю запрос который выводит что то типа "С этим товаром покупают"
>
>
> SELECT number_order, goods_code FROM `table` where
> `number_order` IN (SELECT `number_order` FROM `table` WHERE `goods_code` = 'xxxxx')
> and `goods_code` != 'xxxxx' group by `goods_code`
>
> Запрос выполняется 3 секунды.
>
> Как бы оптимизировать такой запрос?
>
>


From: Akina - 03/03/2011 - 14:25:48
Subject:Как бы оптимизировать запрос с IN
-----------------
А зачем тебе в выборке лишнее поле и группировка?

SELECT DISTINCT goods_code
FROM `table`
WHERE `number_order` IN
(
SELECT `number_order`
FROM `table`
WHERE `goods_code` = 'xxxxx'
)
AND `goods_code` != 'xxxxx';

Или попробуй

SELECT DISTINCT t1.goods_code
FROM `table` t1
INNER JOIN
(
SELECT t2.number_order
FROM `table` t2
WHERE t2.goods_code = 'xxxxx'
) q1
ON t1.number_order=q1.number_order
AND t1.goods_code != 'xxxxx';

Хотя, я думаю, станет только хуже...


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

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

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



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