За последние 24 часа нас посетили 15184 программиста и 1671 робот. Сейчас ищут 930 программистов ...

Ускорить запрос

Тема в разделе "MySQL", создана пользователем inline, 13 сен 2011.

  1. inline

    inline Активный пользователь

    С нами с:
    21 май 2010
    Сообщения:
    466
    Симпатии:
    0
    Есть таблица
    Table (id int, name varchar 255) - на id і name есть индекс
    Делаем запрос select id from table where name like '%фраза_1%фраза_2%фраза_3%'
    Записей в таблице 400к
    Время выполнения до кеширования 10-15 сек.
    Как ускорить запрос не увеличивая ресурсы сервера?
    Спасибо!
     
  2. alive342

    alive342 Активный пользователь

    С нами с:
    21 апр 2011
    Сообщения:
    137
    Симпатии:
    0
    Адрес:
    Российская Федерация
    на сколько я помню, like с простыми индексами не работает
     
  3. inline

    inline Активный пользователь

    С нами с:
    21 май 2010
    Сообщения:
    466
    Симпатии:
    0
    а с какими работает?
     
  4. karakh

    karakh Активный пользователь

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    http://dev.mysql.com/doc/refman/5.5/en/ ... earch.html

    like использует индексы только если ищется начало строки. То есть like 'строка%' будет использовать индекс, а like '%строка%' не будет
     
  5. inline

    inline Активный пользователь

    С нами с:
    21 май 2010
    Сообщения:
    466
    Симпатии:
    0
    это я понял

    чем заменить в этом случаи like ?
     
  6. karakh

    karakh Активный пользователь

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    я что, зря ссылку давал?
     
  7. inline

    inline Активный пользователь

    С нами с:
    21 май 2010
    Сообщения:
    466
    Симпатии:
    0
    karakh
    извени! что-то ступил! не заметил сразу!

    и такой вопрос
    как в AGAINST записать [sql]%фраза_1%фраза_2%фраза_3%[/sql]
    так и писать с % ?
     
  8. karakh

    karakh Активный пользователь

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
  9. inline

    inline Активный пользователь

    С нами с:
    21 май 2010
    Сообщения:
    466
    Симпатии:
    0
    Если текст в AGAINST менее или равен три символа, то при поиске текст такой не учитывается. Как сделать, чтобы учитывался? Спасибо!
     
  10. karakh

    karakh Активный пользователь

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0