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




MySQL.RU - Webboard



Вернуться
Опитимизация SELECT ... LIKE '%слово%' (Nikus) 04/05/2006 - 11:32:54
      Re: Опитимизация SELECT ... LIKE '%слово%' (NickAssa) 04/05/2006 - 11:46:23
      Re: Опитимизация SELECT ... LIKE '%слово%' (Dinky) 04/05/2006 - 23:16:06
      Re: Опитимизация SELECT ... LIKE '%слово%' (Nikus) 05/05/2006 - 13:56:08

> Original message text:
> From: Nikus - 04/05/2006 - 11:32:54
> Subject:Опитимизация SELECT ... LIKE '%слово%'
> -----------------
> Доброго времени суток.
>
> Итак, есть таблица с именами файлов, их атрибутами и прочим. По полю name есть индекс. Когда я делаю запрос типа:
> SELECT ... WHERE name LIKE '%слово%'
> то время выполнения оного составляет ~1.5 сек. Если же я делаю запрос
> SELECT ... WHERE name LIKE '%слово%' ORDER BY name
> то запрос выполняется ~15 сек.
>
> Я понимаю, что сортировка результатов по такой строке поиска не может выолняться через индекс. Однако почему тогда выборка результатов без сортировки происхожит так быстро?
> Да и как можно сортировать 13.5 сек 10 строк результата?
>
> MySQL 5.0.20, в таблице 1.6 млн. записей.
>


From: NickAssa - 04/05/2006 - 11:46:23
Subject:Опитимизация SELECT ... LIKE '%слово%'
-----------------
Дело не в сортировке
Перед исполнением запроса SQL делает для себя план его выполнения
(использование индексов, например) и уж потом его выполняет.
Так что при select'е без 'order by' SQL видит индекс и считает его оптимальным, а вот с 'order by', скорее всего, индекс в план не включает (почему - объяснить не могу).
Попробуй явно указать индекс в запросе


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

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

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



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