Запросы к бд shop_promo_rules

Смотрю копию рабочего сайта на локале. Запустил на опенсервер с мариаДБ. Смотрю запросы по странице карточки товара. Тему выбрал Дефолт3.0. В шаблоне карточки товара закоментировал код вывода товаров апселлинг и кросселинг. Разлогинился из админки.

Смотрю логи запросов к бд. Вижу 6 запросов к таблице shop_promo_rules такого вида:

SELECT rl.*
FROM shop_promo_rules AS rl
JOIN shop_promo AS p ON rl.promo_id = p.id JOIN shop_promo_routes AS rt ON rl.promo_id = rt.promo_id
WHERE rl.rule_type IN ('custom_price') AND rt.storefront IN ('%all%','localhost/','localhost') AND (p.start_datetime IS NULL OR p.start_datetime <= '2020-02-16 10:34:57') AND (p.finish_datetime IS NULL OR p.finish_datetime >= '2020-02-16 10:34:57') AND (p.enabled != 0)
ORDER BY rl.id
Версия Webasyst 1.13.2.483
Версия PHP  7.0.32
ShopScript версии 8.7.1.27


Возникает 2 вопроса - 

1. Почему именно 6 запросов?

2. Откуда вообще эти запросы.


Другие запросы тоже дублируются. Может кто подскажет почему дублируюются запросы и откда вообще в карточке товара запросы к промо?

2 ответа

  • 1
    SergKovalsky 16 февраля 2020 12:06 #

    Сделал фунцию пустышку

    public function promos() { }


    в \wa-apps\shop\lib\classes\shopViewHelper.class.php


    Запросов уменьшилось на 4. То есть где-то в шаблоне 4 раза вызывается список промо.


    Но 2 запроса остались.

  • 1
    Евгений Е 17 февраля 2020 15:38 #

    Мало того на простейшей странице вызываются 93 запроса:

    CREATE TEMPORARY TABLE IF NOT EXISTS shop_product_promo_price_tmp ( storefront VARCHAR(255) NOT NULL, promo_id INT(11) NOT NULL, product_id INT(11) NOT NULL, sku_id INT(11) NOT NULL, price DECIMAL(15, 4) DEFAULT '0.0000' NULL, primary_price DECIMAL(15, 4) DEFAULT '0.0000' NULL, compare_price DECIMAL(15, 4) DEFAULT '0.0000' NULL, primary_compare_price DECIMAL(15, 4) DEFAULT '0.0000' NULL, INDEX `storefront` (`storefront`), INDEX `product_id` (`product_id`), INDEX `sku_id` (`sku_id`), INDEX `primary_price` (`primary_price`), unique (storefront, product_id, sku_id) ) ENGINE = MEMORY DEFAULT CHARSET utf8

    и

    TRUNCATE shop_product_promo_price_tmp

    93 запроса:

    INSERT INTO shop_product_promo_price_tmp (`promo_id`,`storefront`,`product_id`,`sku_id`,`price`,`primary_price`,`compare_price`,`primary_compare_price`) VALUES ('1','site.ru','84439','58472',900,900,1100,1100)

    и 93 запроса:

    SELECT rl.* FROM shop_promo_rules AS rl JOIN shop_promo AS p ON rl.promo_id = p.id JOIN shop_promo_routes AS rt ON rl.promo_id = rt.promo_id WHERE rl.rule_type IN ('custom_price') AND rt.storefront IN ('%all%','site.ru/','site.ru') AND (p.start_datetime IS NULL OR p.start_datetime <= '2020-02-17 15:29:14') AND (p.finish_datetime IS NULL OR p.finish_datetime >= '2020-02-17 15:29:14') AND (p.enabled != 0) ORDER BY rl.id

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите