Новости
Документация
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: 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, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
38030



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