Настроить запросы чтобы страницы открывались быстрее

Статус
В этой теме нельзя размещать новые ответы.

marketsell

Проверенные
Сообщения
38
Реакции
24
Баллы
3,310
На форуме установлен плагин для проведения совместных покупок - Esthetic Collaborative Shopping [modded by Exile]
Сейчас многие страницы где проводятся совместные покупки стали очень медленно открываться (из-за увеличения количества участников).

Ответ службы поддержки хостинга по поводу этой проблемы:
Нагрузку на сервере создаёт mysql из-за того что CMS сайта выполняет запросы, аналогичные приведённому ниже.
Несмотря на то, что индексы по сравниваемым полям в таблицах уже есть, эти запросы выполняются по 3-6 секунд.
Это связано с использованием нескольких конструкций JOIN в запросах.

SET timestamp=1497334797;
SELECT p.*, u.username, u.avatar_date,
(SELECT COUNT(p1.vote)
FROM `estcs_participant` AS p1
LEFT JOIN `estcs_shopping` AS s1 ON (s1.shopping_id = p1.shopping_id)
WHERE s1.stage = 'closed' AND p1.is_additional = 0 AND p1.user_id = u.user_id AND p1.vote > 0) AS _vote_sum,
(SELECT COUNT(p2.vote)
FROM `estcs_participant` AS p2
LEFT JOIN `estcs_shopping` AS s2 ON (s2.shopping_id = p2.shopping_id)
WHERE s2.stage = 'closed' AND p2.is_additional = 0 AND p2.user_id = u.user_id) AS _vote_total,
(SELECT COUNT(s3.shopping_id)
FROM `estcs_shopping` AS s3
LEFT JOIN `estcs_participant` AS p3 ON (p3.shopping_id = s3.shopping_id)
WHERE p3.user_id = u.user_id AND s3.stage = 'closed' AND p3.is_additional = 0) AS _shoppings_total,
(SELECT COUNT(s4.shopping_id)
FROM `estcs_shopping` AS s4
LEFT JOIN `estcs_participant` AS p4 ON (p4.shopping_id = s4.shopping_id)
WHERE p4.user_id = u.user_id AND s4.stage = 'closed' AND p4.is_additional = 1 AND p4.is_payed = 1) AS _additional_shoppings_total
FROM `estcs_participant` as p
LEFT JOIN `xf_user` AS u ON (u.user_id = p.user_id)
WHERE p.shopping_id = '652'
AND u.username IS NOT NULL
ORDER BY p.signed_at ASC;

Возможные решения:
  • Настроить CMS, чтобы таких запросов не было.

Нужно настроить запросы чтобы страницы открывались быстрее.
Оплата: 5000 руб (или договорная).
 
Статус
В этой теме нельзя размещать новые ответы.
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу