Select title from table where title Like % : title % limit 10
runapa, есть разные пути как ускорить текстовый поиск. Человек в ответах верно написал что если
ты включаешь лидирующий знак % то индекс не используется. Это правда. Классические индексы БД
не умеют искать по середине выражения. Только по префиксу или по полному совпадению. Если сработает
- попробуй переписать вот так.
Select title from table where title Like : title % limit 10
Если в поле title - ты постоянно ишешь какую-то категорию - то можно эту категорию выделить
в отдельное поле и проиндексировать его и сделать его лидирующем в плане запроса.
Тогда поиск будет выглядеть так.
Select title from table where category='физ-лицо' AND 'title Like %: title % limit 10
и фактическое время запроса будет уменьшено. Но это требует эксперимента.
Если это все не помогло - то тогда почитай как в MySQL работает полнотекстовый поиск
https://dev.mysql.com/doc/refman/8.0/en/fulltext-n... Это возможно потребует
переделки всей таблицы. И переделки всех запросов.
Не всем это подходит и не всегда оптимально. Поэтому делай эксперименты с замером времени.
Текстовые индексы имеют побочные свойства. Они либо медленнее обновляются (неконсистентны)
в отличие от B+Tree либо требуют ручных действий по обновлению.