Добрый день. Достался один проект на DLE в котором много категорий, и постов.
Посмотрел выборку постов категории, имеет вид:
SELECT * FROM dle_post WHERE category regexp '[[:<:]](17)[[:>:]]'
что очень сильно грузит сайт с большой посещаемостью.
Как решил решить вопрос:
- Добавить 1 таблицу со связью поста и категории categories_to_post с полями: id, post_id, category_id.
И заменить выборку на
JOIN categories_to_post ON dle_post.post_id = categories_to_post.post_id WHERE categories_to_post.categoiry_id = 'ид категории'
Интересует насколько это правильное решение вопроса, снизит ли нагрузку и другие возможные варианты решения.