rolling

Тормозит подсчет кол-ва товара в категориях

Рекомендуемые сообщения

rolling    0

Добрый день!

В последнее время сайт стал заметно подтормаживать. На сайте сбоку висит модуль отражающий список корневых категорий и количество товаров в них (из подкатегорий тоже).

Выяснил, что при загрузке страницы БД получает более 500 запросов вида

SELECT COUNT(DISTINCT p.product_id) AS total
FROM product p
LEFT JOIN product_description pd ON (p.product_id = pd.product_id)
LEFT JOIN product_to_store p2s ON (p.product_id = p2s.product_id) LEFT JOIN product_to_category p2c ON (p.product_id = p2c.product_id)
WHERE pd.language_id = '1' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' AND (p2c.category_id = '410')
или еще более развлетвленные.

Выяснил, что эти цифры выдает функция getTotalProducts() в файле /catalog/model/catalog/product.php И если закоментить текст функции - сайт сразу оживает.

Подскажите, может кто-то уже стыкался с такой проблемой? Может есть более удачные методы подсчета кол-ва товара в категориях?

Буду очень признателен за любую помощь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
EVMedvedev    211

Добрый день!

В последнее время сайт стал заметно подтормаживать. На сайте сбоку висит модуль отражающий список корневых категорий и количество товаров в них (из подкатегорий тоже).

Выяснил, что при загрузке страницы БД получает более 500 запросов вида

SELECT COUNT(DISTINCT p.product_id) AS total
FROM product p
LEFT JOIN product_description pd ON (p.product_id = pd.product_id)
LEFT JOIN product_to_store p2s ON (p.product_id = p2s.product_id) LEFT JOIN product_to_category p2c ON (p.product_id = p2c.product_id)
WHERE pd.language_id = '1' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' AND (p2c.category_id = '410')
или еще более развлетвленные.

Выяснил, что эти цифры выдает функция getTotalProducts() в файле /catalog/model/catalog/product.php И если закоментить текст функции - сайт сразу оживает.

Подскажите, может кто-то уже стыкался с такой проблемой? Может есть более удачные методы подсчета кол-ва товара в категориях?

Буду очень признателен за любую помощь.

Можно доработать движок так, чтобы дерево категорий генерировалось при редактировании категорий и при добавлении товаров. А во фронте грузить уже готовый HTML код. Тогда все будет летать. Но переделок понадобится много.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Похожий контент

    • От whiteblue

      888.00 руб
      Скачать/Купить дополнение


      AutoDistribute для Opencart 2x
       
      Модуль помогает автоматом редактировать товары по заданным схемам
       
      Видео-инструкция  по ссылке
      https://www.youtube.com/embed/wuLzULDn8tI
       
      Возможности модуля:
      Можно создать схемы переопределения атрибутов, производителей и категорий по заданным параметрам. Переопределение по заданным параметров происходит при добавлении и редактировании товаров. Можно настроить несколько условий переопределения для одной группы товаров Модуль просто адаптировать под любую синхронизацию товаров.  
       
      И  делается все это автоматически!!!
       
       
      Для первых 3-х покупателей - цена -888р!!!
       
      Установка модуля:

      1. Создать резервную копию сайта и БД.
      2. Скачать архив
      3. Установить архив модуля  через админку. Модули - Установка расширений
      4. Обновить модификации в админке
      5. Активировать модуль. Модули - Модули - AutoDistribute
       
      Интеграция с выгрузками, синхронизациями или крон задачами
       
      С большим количесвом выгрузок  модуль интегрирован.. Для этого необходимо:
      при добавлении записи из статуса "отключен" перевести в статус включен   не путать со статусом модуля     НО если ваш модуль интеграции уникален и не использует стандартную модель обновления товара, то:
      в контроллер модуля , который отвечает за выгрузку после кода выполнения выгрузки или синхронизации - вставляем код:
       
      $this->model->load('extension/module/autodistribute');
      $distributes=$this->model_extension_module_autodistribute->getDistributes();
      foreach($distributes as $distribute) {
      $this->model_extension_module_autodistribute->implementDistributes($distribute['distribute_id']);
      }

      Добавил whiteblue Добавлено 29.01.2018 Категория Модули Системные требования Сайт разработчика http://white-blue.com.ua/AutoDistribute Старая цена 2252 Метод активации Без активации Ioncube Loader Нет OpenCart 2.3
      2.1 ocStore 2.3
      2.1 OpenCart.Pro, ocShop  
    • От whiteblue
       
      Модуль помогает автоматом редактировать товары по заданным схемам
       
      Видео-инструкция  по ссылке
      https://www.youtube.com/embed/wuLzULDn8tI
       
      Возможности модуля:
      Можно создать схемы переопределения атрибутов, производителей и категорий по заданным параметрам. Переопределение по заданным параметров происходит при добавлении и редактировании товаров. Можно настроить несколько условий переопределения для одной группы товаров Модуль просто адаптировать под любую синхронизацию товаров.  
       
      И  делается все это автоматически!!!
       
       
      Для первых 3-х покупателей - цена -888р!!!
       
      Установка модуля:

      1. Создать резервную копию сайта и БД.
      2. Скачать архив
      3. Установить архив модуля  через админку. Модули - Установка расширений
      4. Обновить модификации в админке
      5. Активировать модуль. Модули - Модули - AutoDistribute
       
      Интеграция с выгрузками, синхронизациями или крон задачами
       
      С большим количесвом выгрузок  модуль интегрирован.. Для этого необходимо:
      при добавлении записи из статуса "отключен" перевести в статус включен   не путать со статусом модуля     НО если ваш модуль интеграции уникален и не использует стандартную модель обновления товара, то:
      в контроллер модуля , который отвечает за выгрузку после кода выполнения выгрузки или синхронизации - вставляем код:
       
      $this->model->load('extension/module/autodistribute');
      $distributes=$this->model_extension_module_autodistribute->getDistributes();
      foreach($distributes as $distribute) {
      $this->model_extension_module_autodistribute->implementDistributes($distribute['distribute_id']);
      }

    • От legioner26

      300.00 руб
      Скачать/Купить дополнение


      Многофункциональный модуль меню Категорий
      Разработан многофункциональный модификатор меню категорий товаров, который позволяет прям из админ панели решать массу задач без участия программиста. Очень простая и легкая установка.
      Модификатор создан для изменения и добавления функционала в стандартный модуль категорий всех версий веток ОС начиная от 2.0 и заканчивая 2.3
      По запросу есть возможность модификации под версии 3.0
      ПРИМЕЧАНИЕ !!!
      Для корректной установки и работы модификатора настоятельно рекомендую проверить были ли изменены файлы стандартного модуля категорий, 
      либо удостовериться что нет сторонних модификаторов которые бы меняли функционал.
      В случае если файлы изменены, можете добавить к ним префикс к примеру (category_1.tpl) и залить файлы из коробки ОС.
       
      В случае проблем с установкой писать в личку.
      АКЦИЯ ДО КОНЦА ФЕВРАЛЯ !!!
       
      Установка:
      1. Папку Admin закинуть на хостинг в корень сайта 
      2. Устанавливаете модификатор согласно вашей версии ОС через "Установка расширений", далее в модификаторах чистим кешь и обновляем.
      ИНСТРУКЦИЯ во вложении
       
      http://a-rak.ru  - С вертикальным выпадом
      https://teplomir26.ru - С горизонтальным выпадом
       
      Добавил legioner26 Добавлено 12.02.2018 Категория Меню, дизайн, внешний вид Системные требования Сайт разработчика Старая цена 600 Метод активации Без активации Ioncube Loader Нет OpenCart 2.3
      2.2
      2.1
      2.0 ocStore 2.3
      2.2
      2.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1
      OcShop 2.0.3.х  
    • От legioner26
      Разработан многофункциональный модификатор меню категорий товаров, который позволяет прям из админ панели решать массу задач без участия программиста. Очень простая и легкая установка.
      Модификатор создан для изменения и добавления функционала в стандартный модуль категорий всех версий веток ОС начиная от 2.0 и заканчивая 2.3
      По запросу есть возможность модификации под версии 3.0
      ПРИМЕЧАНИЕ !!!
      Для корректной установки и работы модификатора настоятельно рекомендую проверить были ли изменены файлы стандартного модуля категорий, 
      либо удостовериться что нет сторонних модификаторов которые бы меняли функционал.
      В случае если файлы изменены, можете добавить к ним префикс к примеру (category_1.tpl) и залить файлы из коробки ОС.
       
      В случае проблем с установкой писать в личку.
      АКЦИЯ ДО КОНЦА ФЕВРАЛЯ !!!
       
      Установка:
      1. Папку Admin закинуть на хостинг в корень сайта 
      2. Устанавливаете модификатор согласно вашей версии ОС через "Установка расширений", далее в модификаторах чистим кешь и обновляем.
      ИНСТРУКЦИЯ во вложении
       
      http://a-rak.ru  - С вертикальным выпадом
      https://teplomir26.ru - С горизонтальным выпадом
       
    • От creation

      Скачать/Купить дополнение


      Категории аккордеон для 2.3
      Модуль аккордеона категорий. Для версии 2.3
      Должен работать и на более старших версиях, только поменять путь к файлам.
      Демо - http://demo.creation.in.ua/index.php?route=product/category&path=20  (боковое меню категорий)
       
      Установка: распаковать содержимое архива в корень сайта. Замены файлов не будет.
      Добавил creation Добавлено 18.02.2018 Категория Меню, дизайн, внешний вид Системные требования Сайт разработчика creation.in.ua Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart 2.3 ocStore 2.3 OpenCart.Pro, ocShop Не проверялось  
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу