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
modx.pro
948
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 или что-то подобное.
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        6