Вы хотите добавить индекс к вашему столбцу запроса. Если в начале поискового выражения есть подстановочный знак, MySQL не может использовать индекс.
Если вы выполняете поиск, отличный от «равно» (LIKE 'test'
) или «начинается с» (LIKE 'test%'
), MySQL должен будет сканировать каждую строку. Например, поиск «содержит» (LIKE '%test%'
) не может использовать индекс.
Вы могли бы разрешить "заканчиваться на" ('LIKE %test
), но вам нужно было бы построить обратный столбец для индексации, чтобы вы могли фактически сделать LIKE 'test%'
, чтобы использовать индекс.
Любое полное сканирование будет медленным, и чем больше строк, тем медленнее будет. Чем больше поле, тем медленнее оно будет.
Вы можете увидеть ограничение использования LIKE
. Поэтому вы можете создать таблицу с именем «Теги», в которой вы будете привязывать отдельные ключевые слова к каждой записи, а не использовать весь текст, но я все равно буду придерживаться «равно» и «начинаться с», даже с тегами.
Использование LIKE
без помощи индекса должно быть ограничено редким специальным запросом или очень маленькими наборами данных.