Сколько может выдержать поиск по запросу LIKE ?

Статус
В этой теме нельзя размещать новые ответы.

igramnet

Профессор
Регистрация
7 Авг 2007
Сообщения
285
Реакции
35
Подскажите, если таблица на 1 миллион записей и в ней идет поиск по одной колонке varchar (250) оператором LIKE
Насколько это критично? Или лучше как-то по-другому организовывать поиск?
 
Если у вас таблица в MyIsam то лучше использовать FULL Text поиск или уже сторонние платформы типа Sphinx. Вот Для просмотра ссылки Войди или Зарегистрируйся статья на хабре будет полезно, не забудьте читать комменты!

И кстати, если вы используете LIKE типа '%text%' или '%text' то то что вы сделали index это вам ничего не даст, так как LIKE поиск использует индексы только в том случаи если 'text%' или просто 'text'
 
Если у вас таблица в MyIsam то лучше использовать FULL Text поиск или уже сторонние платформы типа Sphinx. Вот Для просмотра ссылки Войди или Зарегистрируйся статья на хабре будет полезно, не забудьте читать комменты!

И кстати, если вы используете LIKE типа '%text%' или '%text' то то что вы сделали index это вам ничего не даст, так как LIKE поиск использует индексы только в том случаи если 'text%' или просто 'text'

Здесь стоит оговориться, что при использовании Sphinx создаются дополнительные индексы самим сфинксом, и если таблица обновляется довольно часто, то нужно и индексы создавать с такой же частотой, иначе данные будут неактуальны. Ведь сам поиск, при работе со Сфинксом, ведется непосредственно по индексам Сфинкса а не по таблице БД. Т.е. Сфинкс, скажем, выдает ID, и уже по ним производится поиск в базе. Хотя скорость работы Сфинкса очень достойная.
 
1 млн записей искать лайком это беда. Каждый раз будет все записи проходить. Только если использовать full text или что-то еще.
Вообще проверяйте командой EXPLAIN сколько строк обрабатывает движок mysql. Если миллион, то это плохо. Если существенно меньше, то вы нашли решение.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху