Перейти к содержанию
rolling

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

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

Добрый день!

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

Выяснил, что при загрузке страницы БД получает более 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 И если закоментить текст функции - сайт сразу оживает.

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

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

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


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

Добрый день!

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

Выяснил, что при загрузке страницы БД получает более 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 код. Тогда все будет летать. Но переделок понадобится много.

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


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

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

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

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

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

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

Войти

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

Войти

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

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


      Мульти родительская категория
      Модуль мульти-категорий (vqmod) позволяющий добавлять несколько родительских категорий для младших категорий, не нарушая URL.
      Подходит для версий 1.5.5.1
      Добавил avtoloo Добавлено 22.09.2016 Категория Прочее Системные требования Метод активации Ioncube Loader OpenCart ocStore OpenCart.Pro, ocShop  
    • От avtoloo
      Модуль мульти-категорий (vqmod) позволяющий добавлять несколько родительских категорий для младших категорий, не нарушая URL.
      Подходит для версий 1.5.5.1
    • От buslikdrev
      1 250.00 руб · Срок продления: 800.00 руб за 2 года
      Скачать/Купить дополнение


      Подкатегории / Линейка продукции для производителей
      Название модуля (модификатора): Линейка продукции для производителей - "SubManufacturers"
      Версия модуля (модификатора): 1.1
      Тип лицензии: Full (Полная версия)
      Тип установки: ocmod
      Язык: Беларуская мова, English, Русский язык, Українська мова
      Дата создания: 30.05.2017
      Дата обновления: 15.02.2018
      Был протестирован на: OpenCart.pro 2.1.0.2.2 и 2.3.0.2.3, OpenCart-"Русская сборка" 2.1.0.2 (rs1) и 2.3.0.2 (rs6), ocStore 2.1.0.2.1 и 2.3.0.2.3 - шаблон (default, Magazin, Revolution)
      Название архива 1: SubManufacturers v1.0 Full OpenCart.pro 2.1.X.zip
      Название архива 2: SubManufacturers v1.1 Full OpenCart 2.X.zip
      Добавлен архив модуля: ManufacturerWall v1.1 Full OpenCart 2.0.X-2.1.X.ocmod.zip и ManufacturerWall v1.1 Full OpenCart 2.2.X-2.3.X.ocmod.zip
       
      При покупки более 1-ой лицензии, скидка50%
       
      ДЕМОНСТРАЦИЯ


      ОПИСАНИЕ
      Модификатор предназначен для добавления линейки (подкатегории) в производителях, а именно появится возможность разделить производителей на линейки выпускаемой ими продукции.
      Например, есть производитель Samsung, в стандартном модуле производителей будет выводиться такая продукция: телевизоры, микроволновые печи, электрочайники и т.д. Согласитесь, что как-то безобразно при переходе по нажатию на производителя в карточке товара теряться в каше другого товара, когда вас интересуют конкретно телевизоры. Благодаря этому модулю
      ваши покупатели не будут теряться в производителях и смогут быстрее подобрать себе товар. 

      ВНИМАНИЕ!
      Оригинальные файлы магазина не заменяет!
      Не забывайте делать бэкап базы данных на всякий случай.
      ДОБАВЛЕН В СОСТАВ МОДУЛЬ: Витрина производителей / ManufacrturerWall v1.1 - Он будет идти отдельным архивом, чтобы можно было на выбор ставить его или нет. Обновление двух модулей будут идти в ногу.
      С модулем Сео-оптимизация шаблона конфликтов в работе нет.
      Всегда проверяйте такие модули (окмоды - архивы) содержащие такие файлы: "install.php, install.sql" так как злоумышленники могут навредить вашему сайту, например, вашими руками удалят вашу базу данных.
      Пример запроса (смотрите, чтобы не было удаления таблиц "DROP TABLE": категорий, пользователей, товара и т.д. по оригиналу или всей БД "DROP DATABASE"):


      Модификатор "вносит изменения" в следующие файлы:
       
      УСЛОВИЯ СОГЛАШЕНИЯ
      - Модуль (модификатор) можно устанавливать на 1 домен включая поддомены (одна покупка - один домен);
      - Редактировать код можно только под нужды своего магазина;
      - Распространение модуля запрещено;
      - Тех. поддержка осуществляется только при появлении ошибки, бага, из-за глюка (зависания) и не совместимости модуля (модификатора) с заявленными версиями Opencart на момент продажи;
      - Адаптация модуля (модификатора) под другую версию Опенкарта, нестандартный шаблон и сторонние модули - платная.

      Вопросы и пожелания можно задавать в данной теме.
      Добавил buslikdrev Добавлено 15.02.2018 Категория Серии, Комплекты Системные требования Сайт разработчика http://buslikdrev.by/ Старая цена 1600 Метод активации Автоматическая активация Ioncube Loader Нет OpenCart 3.0
      2.3
      2.2
      2.1
      2.0 ocStore 3.0
      2.3
      2.2
      2.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1
      OcShop 2.0.3.х  
    • От buslikdrev
      Название модуля (модификатора): Линейка продукции для производителей - "SubManufacturers"
      Версия модуля (модификатора): 1.1
      Тип лицензии: Full (Полная версия)
      Тип установки: ocmod
      Язык: Беларуская мова, English, Русский язык, Українська мова
      Дата создания: 30.05.2017
      Дата обновления: 15.02.2018
      Был протестирован на: OpenCart.pro 2.1.0.2.2 и 2.3.0.2.3, OpenCart-"Русская сборка" 2.1.0.2 (rs1) и 2.3.0.2 (rs6), ocStore 2.1.0.2.1 и 2.3.0.2.3 - шаблон (default, Magazin, Revolution)
      Название архива 1: SubManufacturers v1.0 Full OpenCart.pro 2.1.X.zip
      Название архива 2: SubManufacturers v1.1 Full OpenCart 2.X.zip
      Добавлен архив модуля: ManufacturerWall v1.1 Full OpenCart 2.0.X-2.1.X.ocmod.zip и ManufacturerWall v1.1 Full OpenCart 2.2.X-2.3.X.ocmod.zip
       
      При покупки более 1-ой лицензии, скидка50%
       
      ДЕМОНСТРАЦИЯ


      ОПИСАНИЕ
      Модификатор предназначен для добавления линейки (подкатегории) в производителях, а именно появится возможность разделить производителей на линейки выпускаемой ими продукции.
      Например, есть производитель Samsung, в стандартном модуле производителей будет выводиться такая продукция: телевизоры, микроволновые печи, электрочайники и т.д. Согласитесь, что как-то безобразно при переходе по нажатию на производителя в карточке товара теряться в каше другого товара, когда вас интересуют конкретно телевизоры. Благодаря этому модулю
      ваши покупатели не будут теряться в производителях и смогут быстрее подобрать себе товар. 

      ВНИМАНИЕ!
      Оригинальные файлы магазина не заменяет!
      Не забывайте делать бэкап базы данных на всякий случай.
      ДОБАВЛЕН В СОСТАВ МОДУЛЬ: Витрина производителей / ManufacrturerWall v1.1 - Он будет идти отдельным архивом, чтобы можно было на выбор ставить его или нет. Обновление двух модулей будут идти в ногу.
      С модулем Сео-оптимизация шаблона конфликтов в работе нет.
      Всегда проверяйте такие модули (окмоды - архивы) содержащие такие файлы: "install.php, install.sql" так как злоумышленники могут навредить вашему сайту, например, вашими руками удалят вашу базу данных.
      Пример запроса (смотрите, чтобы не было удаления таблиц "DROP TABLE": категорий, пользователей, товара и т.д. по оригиналу или всей БД "DROP DATABASE"):


      Модификатор "вносит изменения" в следующие файлы:
       
      УСЛОВИЯ СОГЛАШЕНИЯ
      - Модуль (модификатор) можно устанавливать на 1 домен включая поддомены (одна покупка - один домен);
      - Редактировать код можно только под нужды своего магазина;
      - Распространение модуля запрещено;
      - Тех. поддержка осуществляется только при появлении ошибки, бага, из-за глюка (зависания) и не совместимости модуля (модификатора) с заявленными версиями Opencart на момент продажи;
      - Адаптация модуля (модификатора) под другую версию Опенкарта, нестандартный шаблон и сторонние модули - платная.

      Вопросы и пожелания можно задавать в данной теме.
    • От Leingard
      500.00 руб
      Скачать/Купить дополнение


      ColorAsProduct - цвета товара как отдельные товары
      Модуль предназначением для тех, кому требуется оформить другие цвета товара - как отдельные товары. У каждого цвета товара своя страничка, что позволяет задавать различное описание для Ваших товаров с цветами и красиво вывести ссылки на другие цвета, в самой карточке товара.
       
      DEMO: OC2.3: http://gameshara.ru/module/index.php?route=product/product&product_id=43 (Первый вид отображения)
      DEMO: OC2.1: http://gameshara.ru/ocstore21/index.php?route=product/product&product_id=42 (Четвертый вид отображения)
      Админ часть: Admin (Логин и пароль: demo)
       
      Изменения в версии 1.3
      Возможность указать селектор для отображения модуля в любом месте шаблона (в схему по прежнему нужно добавлять) Новые отображения цветов в карточке товара Возможность отображать цвета товара в категории в списке товаров с переходов в товары (пример) Возможность отключить стандартные стили и подключить минималистичные (пример) Возможность включить или выключить slick-carousel Минималистичные стили заменили полное отключение стилей  
      Изменения в версии 1.2
      Добавлено 3 вида внешнего вида отображения модуля Добавлена возможность вместо изображения товара указать его цвет в формате html (#000000) Добавлена возможность убирать / отображать название цвета Добавлена цена под названием товара с другим цветом Добавлена возможность отображать / скрывать цену под названием товара с другим цветом Добавлена возможность убирать стандартные стили оформления. Теперь при установке связки цветов, данные автоматически прописываются в обоих товарах Обновлённый CSS-код, позволяет Вам оформить модуль по Вашим желаниям, даже с минимальными знаниями CSS Добавлена поддержка версии ocStore 2.1  
      Изменения в версии 1.1
      Добавлен интерфейс модуля Добавлена возможность использовать схемы для расположения в товаре Добавлены файлы локализации Добавлены стили оформления Добавлена карусель цветов slick-carousel Добавлен удобный AJAX выпадающий список для выбора цвета товара  
      Инструкция:
      Установить Настроить в менеджере модулей Вывести в схемах отображения в товаре  
      Лицензия:
      Модуль продается с лицензией на сайт. Одна покупка = Один домен Покупая копию модуля вы получаете право на использование. Распространения модуль платно или бесплатно нарушает лицензию и грозит обнулением покупки, а так же уголовной ответственность предусмотренной статей 146 УК РФ (Нарушение авторских и смежных прав)  Автор оставляет за собой право изменят условия предоставления лицензии, изменения цены и стоков продления лицензии. Все доработки, переработки и изменения функционала не входят в стоимость модуля и оплачиваются отдельно по письменной договоренности с автором.  
      Тип распространения:
      Как есть Добавил Leingard Добавлено 03.12.2017 Категория Серии, Комплекты Системные требования Сайт разработчика Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart 2.3
      2.1
      2.0 ocStore 2.3
      2.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1
      OcShop 2.0.3.х  
  • Последние посетители   0 пользователей онлайн

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

×