Запрос при создании товара

Всем привет! Вопрос с созданием товара minishop2. Хостинг (beget) утверждает, что это супер-тяжелый запрос, который убивает хостинг и переезд на VPS нам не поможет. Они ловят запрос:
SELECT msOption.id, msOption.key, msOption.caption, msOption.description, msOption.measure_unit, msOption.category, msOption.type, msOption.properties, msProductOption.product_id, msProductOption.value, Category.category AS category_name FROM modx_ms2_product_options AS msProductOption RIGHT JOIN modx_ms2_options msOption ON msProductOption.key=msOption.key LEFT JOIN modx_categories Category ON Category.id=msOption.category WHERE msProductOption.product_id IS NULL

Кто-нибудь знает, для чего нужен этот запрос и можно ли его оптимизировать или вообще убрать?
Александр
28 июня 2021, 12:50
modx.pro
706
+1

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

Роман
28 июня 2021, 14:18
0
Запрос и вопрос тяжелый. Нужно копать в глубь. При большом кол-ве товаров и опций, это точно тормозить mysql.
    Александр
    28 июня 2021, 14:26
    0
    Буду благодарен за подсказку в направлении «раскопок». Для чего используется этот запрос не совсем понятно, ведь product_id is null — значит товар создается и еще не имеет опций. На сайте ~ 35к товаров, записей в таблице с опциями ~160к
    Александр
    06 июля 2021, 19:14
    0
    Никто не сталкивался?
      Роман
      07 июля 2021, 08:47
      0
      Попробуй сюда написать. У меня тоже по этой же причине один из сайтов тормозит. Чем больше товаров, и опций, тем дольше идет сохранение.
        Николай Савин
        07 июля 2021, 18:22
        +3
        Если туда писать только ради ответа — то не нужно. Вопрос и здесь видели. Ответа на него нет. Это сложный вопрос, который требует достаточно большого количества времени, внимания и сил. На данный момент времени ответить каждому желающему и тем более оптимизировать программную часть компонента не хватает.
        @Александр, будем благодарны вам за публикацию решения, если вы его найдете. Кажется, именно из-за этого запроса мы апгрейдили сервер на одном из проектов в прошлом году, но не смог в истории уже откопать подтверждение((

        Апгрейд конечно проблему решил и ничего не тормозит. К стати решает не только мощность железа но ещё и версии серверного софта.
          Сергей Шлоков
          08 июля 2021, 11:15
          0
          будем благодарны вам за публикацию решения
          Это баг и проявляется он только на сайтах с большим количеством товаров. Решение простое — править.
        Роман
        03 августа 2021, 09:29
        0
        Решение нашли?
          Владимир
          29 декабря 2023, 02:57
          0
          Скорее всего проблема в этом месте github.com/modx-pro/miniShop2/blob/v2.9.3-pl/core/components/minishop2/model/minishop2/msproductdata.class.php#L59

          Для себя поставил проверку в самом начале:
          if (!$product) {
             return $data;
          }
            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
            9