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

Как оптимизировать запрос к БД MySQL?

Всем доброго времени суток!
Попался мне сайт в руки, а там выборка контента в категориях идет при помощи поиска по строке в json формате через LIKE.
В таблице content, есть поле category и вот пример, как оно может быть заполнено:
["9","18","26"]
Соответственно, если открываем страницу с категорией под номером 9, то получаем запрос на выборку из таблицы content:
$id = 9;
$obj = '"'.$id.'"';
$query="SELECT `content`.* FROM `content` WHERE `content`.`category` LIKE '%$obj%'";

И сейчас, когда записей в таблице стало побольше, все это дело начало тормозить.
На каждую страницу приходится доставать по 100 материалов и так при каждом обновлении.

Как можно оптимизировать таблицу, чтобы избавится от LIKE?
  • Вопрос задан
  • 258 просмотров
Подписаться 1 Оценить Комментировать
Ответ пользователя longclaps К ответам на вопрос (3)
longclaps
@longclaps
Править надо базу: добавить таблицу content-category, проиндексировать по category и зажить нормально.
Ответ написан
Комментировать