Запрос при создании товара
Всем привет! Вопрос с созданием товара 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
Кто-нибудь знает, для чего нужен этот запрос и можно ли его оптимизировать или вообще убрать?
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
Кто-нибудь знает, для чего нужен этот запрос и можно ли его оптимизировать или вообще убрать?
Комментарии: 9
Запрос и вопрос тяжелый. Нужно копать в глубь. При большом кол-ве товаров и опций, это точно тормозить mysql.
Буду благодарен за подсказку в направлении «раскопок». Для чего используется этот запрос не совсем понятно, ведь product_id is null — значит товар создается и еще не имеет опций. На сайте ~ 35к товаров, записей в таблице с опциями ~160к
Никто не сталкивался?
Попробуй сюда написать. У меня тоже по этой же причине один из сайтов тормозит. Чем больше товаров, и опций, тем дольше идет сохранение.
Если туда писать только ради ответа — то не нужно. Вопрос и здесь видели. Ответа на него нет. Это сложный вопрос, который требует достаточно большого количества времени, внимания и сил. На данный момент времени ответить каждому желающему и тем более оптимизировать программную часть компонента не хватает.
@Александр, будем благодарны вам за публикацию решения, если вы его найдете. Кажется, именно из-за этого запроса мы апгрейдили сервер на одном из проектов в прошлом году, но не смог в истории уже откопать подтверждение((
Апгрейд конечно проблему решил и ничего не тормозит. К стати решает не только мощность железа но ещё и версии серверного софта.
Апгрейд конечно проблему решил и ничего не тормозит. К стати решает не только мощность железа но ещё и версии серверного софта.
будем благодарны вам за публикацию решенияЭто баг и проявляется он только на сайтах с большим количеством товаров. Решение простое — править.
Решение нашли?
Скорее всего проблема в этом месте github.com/modx-pro/miniShop2/blob/v2.9.3-pl/core/components/minishop2/model/minishop2/msproductdata.class.php#L59
Для себя поставил проверку в самом начале:
Для себя поставил проверку в самом начале:
if (!$product) {
return $data;
}
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.