В случае «передней вилки» (т. Е. Предиката «LIKE '% ...»), как представляется, здесь, INSTR и LIKE должны выполнять примерно то же самое.
Когда подстановочный знак не «подстановочный знак», подход LIKE должен быть быстрее, если только подстановочный знак не является очень избирательным.
Причина почему тип шаблона и его селективность независимо от того, является то, что предикат с INSTR() будет систематически результат сканирования таблицы (SQL не может делать никаких предположений относительно семантики INSTR), в результате чего SQL может использовать свое понимание семантики предиката LIKE, чтобы, возможно, использовать индекс, чтобы помочь ему проверить только ограниченный набор возможных совпадений.
Как указано в комментарии по самому вопросу, индекс Full Text будет намного быстрее. Разница зависит от конкретного распределения слов в тексте, а также от общего размера таблицы и т. Д., Но ожидайте от двух до восьми раз быстрее, чем, возможно, в 10 раз быстрее.
Возможный недостаток использования в полнотекстовом индексе в дополнение к общим накладным расходам на создание такого индекса заключается в том, что если вы не очень осторожны в настройке этого индекса (например: определение списка стоп-слов, используя специальный синтаксис поиска для избегайте флективных форм и тому подобное ...), могут быть случаи, когда результаты, предоставленные FullText, не будут такими, как ожидалось. Например, в поисках «ПАВ» (инструмент для резки дерева) можно получить множество обращений к записям, включая глагол «видеть» в его различных сопряженных формах.
Конечно, эти функции с полным доступом к полному тексту могут быть переопределены, а также можно считать, что такие функции являются преимуществом, а не недостатком. Я просто упоминаю об этом здесь, потому что мы сравниваем это с обычным поиском подстановочных знаков.
Включение полнотекстового индекса поиска может быть быстрее, если ваши текстовые строки длинны – kibibu
'column regexp 'mystring 'обычно быстрее, чем – Seth
Ваш вопрос имеет как минимум '5' голосов за тег [tag: like-operator]. Могу я попросить вас предложить [tag: sql-like] как [синоним] (http://stackoverflow.com/tags/like-operator/synonyms)? – Kermit