Задать вопрос
@HellWalk

Как лучше оптимизировать запрос %name%?

Здравствуйте

По работе вникаю в новый проект, решаю накопившиеся баги. Решая один из них, увидел такую часть запроса:

`post`.`tags` LIKE 'пресс-релиз,%' OR
`post`.`tags` LIKE '%, пресс-релиз,%' OR
`post`.`tags` LIKE '%,пресс-релиз' OR
`post`.`tags` LIKE 'пресс-релиз'


Мало того, что такой запрос некорректен - например он не находит строку "Болгария, статистика, пресс-релиз", возникает вопрос - а не лучше ли просто написать:

`post`.`tags` LIKE '%пресс-релиз%'

?

P.S. под "пресс-релиз", разумеется, подразумевается любое слово (тег).
P.P.S. Замерял выполнение запросов в phpMyAdmin, второй выполняется раза в два быстрее, но там цифры очень сильно прыгают, не знаю на сколько корректно так заменять скорость выполнения запросов.
  • Вопрос задан
  • 139 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Если это строка тэгов, то лучше всего переделать базу - вынести тэги в отдельную таблицу и добавить дополнительную таблицу связи.
Ответ написан
@imhuman
Тут, видимо, была попытка исключить из выборки результаты с вхождением части слова, например, LIKE '%лес%' найдет колесо, но как-то криво и бессмысленно. Можно использовать REGEXP в вашем случае, но это не самый быстрый запрос.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы