столкнулась с проблемой оптимизации следующего запроса.
SELECT cs.id, cs.parent_id, cs.name, cs.name_rus
, cs.description, cs.type_category, cs.url, cs.title
, cs.meta_title, cs.meta_keywords, cs.meta_description
, cs.image, cs.visible, cs.position, cs.percent1, cs.percent2
, cs.is_can_liked, cs.product_percent, cs.country_id
, COUNT( v.id ) AS prod_count
, co.name
FROM categories cs
LEFT JOIN prod_categories pc ON pc.category_id = cs.id
LEFT JOIN prod ps ON ps.id = pc.product_id
AND ps.visible
LEFT JOIN countries co ON cs.country_id = co.id
AND country_id <> 0
LEFT JOIN variants v ON ps.id = v.product_id
AND (v.stock > 0
OR (v.stock IS NULL AND v.st_custom = 1))
GROUP BY cs.id
ORDER BY cs.position
Прикладываю скрин EXPLAIN'а.
Возможно ли как-то ещё оптимизировать запрос? Перепробовала различные индексы и зашла в тупик :( На данном этапе запрос выдает у меня 5935 строк за 1,5-1,6 сек.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
ЗдраствуйтеНедавно на новом проекте столкнулся в первый раз с проблемой относительно больших данных в Mysql
Как вывести всех пользователей, которых я не лайнкул в таблице likes и соответствую условию
Есть некий класс UserКак я могу его преобразовать в справочник, по принципу[номер телефона -> пользователь]
Подскажите, как можно заменить мою проверку, на такую, чтобы она выполнялась сразу при рандоме в первой строке, если это возможно: