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




MySQL.RU - Webboard



Вернуться
Сортировка результата при использовании IN (juks) 14/01/2008 - 17:26:32
      Re: Сортировка результата при использовании IN (vi.k) 15/01/2008 - 05:01:17
      Re: Сортировка результата при использовании IN (vi.k) 15/01/2008 - 06:13:49
      Re: Сортировка результата при использовании IN (juks) 16/01/2008 - 19:29:20

> Original message text:
> From: juks - 14/01/2008 - 17:26:32
> Subject:Сортировка результата при использовании IN
> -----------------
> Здравствуйте!
>
> Может быть, кто-то знает, как вывести результаты запроса в порядке, соответствующем условию IN?
>
> Например, запрос SELECT name FROM users where id IN (7,3,6,9) даст выборку, идущую в порядке следования первичного ключа id, то есть 3,6,7,9, в то время, когда порядок должен быть таким же, как в условии: (7,3,6,9).
>


From: vi.k - 15/01/2008 - 06:13:49
Subject:Сортировка результата при использовании IN
-----------------
IN служит для оптимизации выполнения запроса, а не только для улучшения читабельности: проще один раз пробежаться по индексу и сравнить с каждым из четырёх значений, чем делать четыре круга, каждый раз в поиске только одного значения.

Так что, запрос с UNION, теоретически, на мой взгляд, должен выполняться почти в 4 раза медленнее, чем в случае с IN.

Проверил практически на базе 1М записей для выборки 50 значений из разных мест таблицы. Результат на P3000, конфигурация - минимум ресурсов:
первый запрос: UNION - ~0.48сек, IN - ~0.17сек => в 2.8 раза;
последующие: UNION - ~0.0060сек, IN - ~0.0015сек => в 4 раза.


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

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

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



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