Редовното индексиране не може да се използва за подобряване на тази заявка. MySQL индексите са B-дървета, което означава, че могат да намерят префикс на индексираната колона много бързо. Но тъй като вашият LIKE
заявката има %
в началото няма уникален префикс за търсене. Така че всеки ред трябва да бъде сканиран, за да съвпадне с шаблона.
Въпреки това, MySQL поддържа и търсене в пълен текст. Това създава индекс на всички думи в колоната и може бързо да намери тези думи. Вижте документацията за подробности.
Ако използвате LIMIT 10
, той ще спре сканирането веднага щом намери първите 10 реда, които отговарят на условията. Освен ако не използвате и ORDER BY
-- след това трябва да намери всички редове, за да може да ги сортира, преди да избере първите 10.