SQL запрос повесил сервер!

Добрый день!
Магазин на miniShop2: категорий около 1 000, товаров 35 000. К базе выполняются запросы, которые вызывают высокую нагрузку на сервер, что приводит в блокировке аккаунта на хостинге.

Запрос выглядел следующим образом:
SELECT `product_id` FROM `ms2_product_categories` AS `msCategoryMember` WHERE `msCategoryMember`.`category_id` IN (3143,3146,3144,… и таких перечислений около 40 000

В каком месте искать проблему?
Иван
26 апреля 2017, 13:43
255
0

Комментарии: 6

Олег
26 апреля 2017, 16:46
0
Что за запрос? вручную написанный или какой-то компонент его использует?
Иван
26 апреля 2017, 16:49
0
Это запрос работы компонента, видимо на стороне пользователя. Ещё стоит компонент mSearch2.
    Олег
    26 апреля 2017, 16:52
    0
    Похоже это происходит, например, в корне каталога — выбираются товары в нужных категориях (то есть во всех). Насколько я понимаю там их должно быть не 40 000, а 1000 — по числу категорий.
      Иван
      26 апреля 2017, 16:55
      0
      В каком компоненте и в каком месте искать, чтобы как-то предотвратить подобные вызовы?
        Олег
        27 апреля 2017, 10:15
        0
        Есть какие-то самописные сниппеты? Вообще по имеющимся данным трудно разобраться, я бы попробовал вывести лог и посмотреть разные страницы, чтобы найти место, где выполняется этот запрос.
Наумов Алексей
27 апреля 2017, 11:41
+1
Необходимо в каких-то вызовах (msProducts, mFilter2, mSearch2) ограничить выборку, вероятнее всего параметром depth или что-то подобное.