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

Тема в разделе "Базы данных", создана пользователем igramnet, 1 дек 2013.

Статус темы:
Закрыта.
Модераторы: latteo
  1. igramnet

    igramnet

    Регистр.:
    7 авг 2007
    Сообщения:
    281
    Симпатии:
    35
    Подскажите, если таблица на 1 миллион записей и в ней идет поиск по одной колонке varchar (250) оператором LIKE
    Насколько это критично? Или лучше как-то по-другому организовывать поиск?
     
  2. snaze

    snaze Писатель

    Регистр.:
    24 июн 2008
    Сообщения:
    5
    Симпатии:
    2
    Если у вас таблица в MyIsam то лучше использовать FULL Text поиск или уже сторонние платформы типа Sphinx. Вот Перейти по ссылке статья на хабре будет полезно, не забудьте читать комменты!

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

    bssat Создатель

    Регистр.:
    11 мар 2013
    Сообщения:
    18
    Симпатии:
    1
    Здесь стоит оговориться, что при использовании Sphinx создаются дополнительные индексы самим сфинксом, и если таблица обновляется довольно часто, то нужно и индексы создавать с такой же частотой, иначе данные будут неактуальны. Ведь сам поиск, при работе со Сфинксом, ведется непосредственно по индексам Сфинкса а не по таблице БД. Т.е. Сфинкс, скажем, выдает ID, и уже по ним производится поиск в базе. Хотя скорость работы Сфинкса очень достойная.
     
  4. smokingstop

    smokingstop Создатель

    Регистр.:
    4 янв 2014
    Сообщения:
    15
    Симпатии:
    2
    1 млн записей искать лайком это беда. Каждый раз будет все записи проходить. Только если использовать full text или что-то еще.
    Вообще проверяйте командой EXPLAIN сколько строк обрабатывает движок mysql. Если миллион, то это плохо. Если существенно меньше, то вы нашли решение.
     
    latteo нравится это.
Статус темы:
Закрыта.