Грузиться MySQL на 100%

Коллеги, приветствую!

Столкнулся с проблемой, что у одного клиента на сервере mysql всегда почти на 100% загружен, это причем без особой посещаемости сайта, обмен с 1с идет раз в 10 минут на изменения только, но их там тоже почти нету

VPS у вебхоста куплен специальный под cs-cart, CS-Cart 4.17.2 SP3

В логе медленных запросов mysql нашел такие, может кто-то подскажет откуда они берутся вообще? И куда копать?

Count: 202 Time=2.08s (419s) Lock=0.00s (0s) Rows=230.0 (46460), cscart[cscart]@localhost
SELECT GROUP_CONCAT(DISTINCT pfval.variant_id) as variant_ids,
CASE
WHEN FIND_IN_SET(pc.category_id, “S”) THEN N WHEN FIND_IN_SET(pc.category_id, “S”) THEN N WHEN FIND_IN_SET(pc.category_id, “S”) THEN N WHEN FIND_IN_SET(pc.category_id, “S”) THEN N WHEN FIND_IN_SET(pc.category_id, “S”) THEN N
ELSE pc.category_id
END as root_category_id
FROM cscart_products_categories as pc
JOIN cscart_product_features_values as pfval ON pfval.product_id = pc.product_id
AND pfval.feature_id = N
GROUP BY root_category_id

Count: 494 Time=0.07s (32s) Lock=0.00s (0s) Rows=1272.0 (628368), cscart[cscart]@localhost
SELECT cscart_categories.category_id,cscart_categories.parent_id,cscart_categories.id_path,cscart_category_descriptions.category,cscart_categories.position,cscart_categories.status,cscart_categories.company_id,cscart_categories.storefront_id,cscart_categories.company_id,cscart_seo_names.name as seo_name,cscart_seo_names.path as seo_path FROM cscart_categories LEFT JOIN cscart_category_descriptions ON cscart_categories.category_id = cscart_category_descriptions.category_id AND cscart_category_descriptions.lang_code = ‘S’ LEFT JOIN cscart_seo_names ON cscart_seo_names.object_id = cscart_categories.category_id AND cscart_seo_names.type = ‘S’ AND cscart_seo_names.dispatch = ‘S’ AND cscart_seo_names.lang_code = ‘S’ AND cscart_seo_names.company_id = cscart_categories.company_id WHERE N=N AND (cscart_categories.usergroup_ids = ‘S’ OR FIND_IN_SET(N, cscart_categories.usergroup_ids) OR FIND_IN_SET(N, cscart_categories.usergroup_ids)) AND cscart_categories.status IN (‘S’) AND cscart_categories.storefront_id IN (N, N) AND cscart_categories.company_id = N ORDER BY cscart_categories.is_trash asc, cscart_categories.position asc, cscart_category_descriptions.category asc

Count: 490 Time=0.05s (26s) Lock=0.00s (0s) Rows=948.6 (464818), cscart[cscart]@localhost
SELECT cscart_categories.category_id,cscart_categories.parent_id,cscart_categories.id_path,cscart_category_descriptions.category,cscart_categories.position,cscart_categories.status,cscart_categories.company_id,cscart_categories.storefront_id,cscart_categories.company_id,cscart_seo_names.name as seo_name,cscart_seo_names.path as seo_path FROM cscart_categories LEFT JOIN cscart_category_descriptions ON cscart_categories.category_id = cscart_category_descriptions.category_id AND cscart_category_descriptions.lang_code = ‘S’ LEFT JOIN cscart_seo_names ON cscart_seo_names.object_id = cscart_categories.category_id AND cscart_seo_names.type = ‘S’ AND cscart_seo_names.dispatch = ‘S’ AND cscart_seo_names.lang_code = ‘S’ AND cscart_seo_names.company_id = cscart_categories.company_id WHERE N=N AND (cscart_categories.usergroup_ids = ‘S’ OR FIND_IN_SET(N, cscart_categories.usergroup_ids) OR FIND_IN_SET(N, cscart_categories.usergroup_ids)) AND cscart_categories.status IN (‘S’) AND cscart_categories.id_path LIKE ‘S’ AND cscart_categories.storefront_id IN (N, N) AND cscart_categories.company_id = N ORDER BY cscart_categories.is_trash asc, cscart_categories.position asc, cscart_category_descriptions.category asc

Вчера еще были такие, так как полный обмен на сайт грузился почти час, но после переустановки модуля SEO стало получше

Count: 20401 Time=0.15s (3133s) Lock=0.00s (0s) Rows=0.0 (0), cscart[cscart]@localhost DELETE FROM cscart_seo_redirects WHERE object_id = N AND type = ‘S’

Count: 20401 Time=0.15s (3117s) Lock=0.00s (0s) Rows=0.0 (0), cscart[cscart]@localhost DELETE FROM cscart_seo_redirects WHERE object_id = N AND type = ‘S’ AND company_id = N

может боты грузят? логи посещений смотрели?

1 лайк

Видно же, что с категориями это связано! У меня такое было постоянно пока свой модуль не написала. Если грузит под 100% скорее всего это прям с категориями связано. Сейчас попробую объяснить как было у меня. Может у вас что-то похожее.

Что происходило у меня. Приходит, например, яндекс (или гугл). Ищет товар, который уже включен и виден на витрине. Пытается найти категорию, а она, например, скрыта. И все. Бот повторяет свое действие либо до таймаута, либо пока php не упадет. Посмотрите, может у вас также. Проверьте категории, которые скрыты(и в них есть товары). Фильтры или характеристики которые скрыты.

Ошибка вторая с сео это скорее всего из-за первой.

У меня ИИ открывали категории с 1000 товаров на странице. Сайт висел.
Модуль самописный решил вопрос.