|
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: AlexanderTV - 03/03/2011 - 19:32:24
Subject:Как бы оптимизировать запрос с IN
-----------------
Лишнее поле это так сказать для анализа глазами, пока мудрю с запросами...
А группировка для подсчета и сортировки наиболее часто покупаемых товаров, count(`goods_code`) As cntr ......order by cntr
я просто подсчет в примере убрал, с подсчетом и сортировкой запрос выглядит так.
SELECT number_order, goods_code, count(`goods_code`) As cntr FROM `table` where
`number_order` IN (SELECT `number_order` FROM `table` WHERE `goods_code` = 'xxxxx')
and `goods_code` != 'xxxxx' group by `goods_code` order by cntr
Ппробовал варианты:
1й 2.5 сек
2й вариант быстрый...
Спасибо!!!
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
38030
|
|