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

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

Всем привет. Уважаемые форумчане помогите разобраться. Вот такие медленые запросы как от них избавиться. Спасибо.

 

Запрос 1.

SELECT a.attribute_group_id AS group_id, av.attribute_id AS attr_id, av.attribute_value_id AS val_id, agd.name AS group_name, ad.name AS attr_name, av.value FROM `oc_bf_aggregate_filters` AS af INNERJOIN ( SELECT p.* FROM `oc_product` AS p INNER JOIN `oc_product_to_category` AS p2c ON(p.product_id = p2c.product_id) INNER JOIN `oc_category_path` AS cp ON (cp.category_id = p2c.category_id) WHERE cp.path_id = '11') AS p ON (af.product_id = p.product_id) INNER JOIN`oc_bf_attribute_value` AS av ON (af.value = av.attribute_value_id) INNER JOIN `oc_attribute` AS a ON(a.attribute_id = av.attribute_id) INNER JOIN `oc_attribute_description` AS ad ON (ad.attribute_id = a.attribute_id) INNER JOIN `oc_attribute_group` AS ag ON (ag.attribute_group_id = a.attribute_group_id)INNER JOIN `oc_attribute_group_description` AS agd ON (agd.attribute_group_id = a.attribute_group_id)INNER JOIN `oc_product_to_store` AS ps ON (p.product_id = ps.product_id) WHERE agd.language_id ='2' AND ad.language_id = '2' AND av.language_id = '2' AND ps.store_id = '0' AND af.type = 'ATTRIBUTE'GROUP BY av.attribute_value_id ORDER BY ag.sort_order, ag.attribute_group_id, a.sort_order, ad.name, av.sort_order, av.value

 

Запрос 2.

SELECT p.product_id, (SELECT AVG(rating) AS total FROM oc_review r1 WHERE r1.product_id = p.product_id AND r1.STATUS = '1' GROUP BY r1.product_id) AS rating, (SELECT price FROMoc_product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '1' ANDpd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < NOW()) AND (pd2.date_end = '0000-00-00' OR pd2.date_end > NOW())) ORDER BY pd2.priority ASC, pd2.price ASC LIMIT 1) ASdiscount, (SELECT price FROM oc_product_special ps WHERE ps.product_id = p.product_id ANDps.customer_group_id = '1' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND(ps.date_end = '0000-00-00' OR ps.date_end > NOW())) ORDER BY ps.priority ASC, ps.price ASC LIMIT1) AS special FROM oc_product p LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN oc_product_to_store p2s ON (p.product_id = p2s.product_id) WHEREpd.language_id = '2' AND p.STATUS = '1' AND p.date_available <= NOW() AND p2s.store_id = '0'GROUP BY p.product_id ORDER BY p.date_added DESCLCASE(pd.name) DESC LIMIT 0,4

 

Запрос 3.

INSERT IGNORE INTO `oc_bf_aggregate_filters` (type,group_id,product_id,value) SELECT 'ATTRIBUTE', av.attribute_id, product_id, attribute_value_id FROM `oc_bf_tmp` AS pa LEFT JOIN`oc_bf_attribute_value` AS av ON (pa.value = av.value AND av.language_id = pa.language_id ANDav.attribute_id = pa.attribute_id) WHERE av.value IS NOT NULL

 

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


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

Доброго времени, 1 и 3 запрос - это нестандартные для опенкарта запросы и вероятно, что вызываются каким то модулем, вот 2-й запрос - это стандартный метой "вытяжки" данных по конкретному product_id, но он не полный, можно его оптимизировать, всё зависит от того, какие данные по товару в магазине используются и стоят ли заглушки, если оптимизируется запрос и где то будет пропущена стандартная переменная, напремер по вызову рейтинга , что в свою очередь - вызовет ошибку.

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


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

Надо конкретно на вашем сайте изучать вопрос. Самое простое - смотреть в сторону добавления индексов в таблицы.

Это надо смотреть в БД

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


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

По 2 запросу - не совсем понятно, это запрос - получить 4 последних (новых) товара, т.е. это модуль (последние)

Почему он медленный...

надо смотреть

 

По 1

Судя по всему это запрос от какого фильтра - получить весь список атрибутов характерных для данной категории

Этот запрос нужно ПЕРЕПИСАТЬ

 

например

....

INNER JOIN `oc_attribute_description` AS ad ON (ad.attribute_id = a.attribute_id) AND ad.language_id = '2'
INNER JOIN `oc_attribute_group` AS ag ON (ag.attribute_group_id = a.attribute_group_id) AND av.language_id = '2'
INNER JOIN `oc_attribute_group_description` AS agd ON (agd.attribute_group_id = a.attribute_group_id) agd.language_id ='2'
INNER JOIN `oc_product_to_store` AS ps ON (p.product_id = ps.product_id) AND ps.store_id = '0'
WHERE

....

 

Посмотреть по индексам , где надо добавить.
 

 

 

 

 

и 3

Это запрос - подготавливается временная таблица (только на каком этапе... или в админке или в магазине) это нужно смотреть модуль фильтра

 

 

Brainy Filter?

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


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

база большая у вас ? сколько позиций в product, product_option_value, product_attribute и product_to_category ?

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


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

база большая у вас ? сколько позиций в product, product_option_value, product_attribute и product_to_category ?

product 2250, product_option_value 4470, product_attribute 27870,  product_to_category 4890

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


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

база совсем не большая

а насколько медленные эти запросы? выполняются секунды? или меньше секунды?

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


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

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

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

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

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

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

Войти

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

Войти

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

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


      Jet Cache - кеширование, оптимизация для магазинов

       

      Логин / пароль:
      demo / demo
       
      Документация  
      Более 10`000 интернет магазинов выбрали SEO CMS для работы
      SEO CMS JET CACHE :: Jet Cache - быстрая система кеширования страниц, контроллеров и методов моделей opencart

      Версия под opencart 3.x высылается по запросу
      Возможности
       
      - кеширует полностью страницы при полной интеграции с opencart (позволяет кешировать и для зарегистрированных пользователей и изменений корзины а также в зависимости от изменений в модулях)  
      - кеширует выбранные контроллеры (т е фактически  любые модули, будь то меню или т.п. а также полностью кеширует позиции (уникальная технология которая не реализовано ни в одном модуле кеширования для opencart) (с))  
      - кеширует методы моделей opencart (подсчет количества товаров и т п )  
      - простая установка и обновление  
      - гибкие настройки  
      - поддержка мультиязычности  
      - поддержка мультимагазинов  
      - поддержка протоколов https и http  
      - гибкая взаимосвязь с любым функционалом платформы SEO CMS  
      - совместимость с любой темой, любыми модулями, которые соответствуют стандартам программирования  
      - поддержка кеширования sitemap Чем модуль лучше других
       
      - уникальные технологии кеширования не имеющие аналогов в opencart (уникальная технология полной интеграции с opencart, в отличии от всех кешировщиков которые сделанны по технологии v2pc)  
      - модуль работает с любыми темами и модулями Требования
       
      Opencart 2.x или любая сборка на нем (ocStore, Opencart.PRO, или другие) PHP 5.3 или выше Модуль НЕ заменяет файлы системы Модуль НЕ использует ioncube  
      Совместимость модуля
       
      Opencart 2.x или любая сборка на нем (ocStore, Opencart.PRO, или другие) Любая тема или любые модули (которые сделаны без ошибок, согласно стандартов программирования или верстки) для оpencart 2.x  
      Установка, настройка
       
      Если пользователь хочет чтобы сотрудник службы технической поддержки проделал работу по установке и настройке модуля вместо пользователя на сервере пользователя, это уже услуга + 590 рублей  
      Лицензия Все права на модуль принадлежат разработчикам opencartadmin.com Условия использования лицензии: один домен - одна лицензия (покупка продукта для каждого домена). Условия использования лицензии - "на владельца". Далее... Добавил markimax Добавлено 15.03.2017 Категория Кэширование, сжатие, ускорение Системные требования PHP 5.3+ Сайт разработчика https://opencartadmin.com/seo-cms-jet-cache.html Старая цена 590 Метод активации Через официальный сайт дополнения Ioncube Loader Нет OpenCart 3.0
      2.3
      2.2
      2.1
      2.0
      1.5.6.4
      1.5.6.3
      1.5.6.2
      1.5.6.1
      1.5.6
      1.5.5.1
      1.5.5
      1.5.4.1
      1.5.3.1 ocStore 2.3
      2.2
      2.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1
      OcShop 2.0.3.х
      OcShop 1.5.6.4.х  
    • От Sha
      399.00 руб
      Скачать/Купить дополнение


      Анкеты, опросы, голосование - обратная связь. Feedback coupling.
      Обратная связь с покупателем: Опросы, голосование, анкетирование.
       
      Данный OpenCart модуль позволяет проводить опросы, голосования и анкетирование посетителей сайта. Это простой маркетинговый инструмент для изучения аудитории сайтов, с помощью которого Вы сможете многое узнать о пользователях сайта, об их мнениях и предпочтениях. Важным преимуществом данного дополнения является получение статистики ответов на вопросы, на основании которой Вы сможете проанализировать и определить стратегию развития и улучшения сайта. Хотите узнать, что думает аудитория Вашего сайта, получайте ответы легко и быстро с помощью модуля опросов!
       

      Возможности:
      Создание любого количества опросов; Неограниченное количество вопросов и ответов; Поддержка нескольких языков; Единоразовое голосование для каждого пользователя; Запоминание ответа на последний вопрос, вывод нового вопроса при следующем входе посетителя; Создание виджетов на любой из страниц сайта (1 виджет - 1 опрос); В конце опроса, можно вывести любую полезную информацию: ссылку, промокод для скидки, предложить товар к покупке; Количественная статистика ответов отдельно по каждому голосованию; Статистика по ответам в процентном соотношении.  
      Демо модуля:
      Демо клиентская часть.
      Создать новый виджет (Админка)
      Уже созданный виджет пример (Админка)
      Список опросов (Админка)
      Статистика ответов (Админка)
      Имя пользователя: demo. Пароль: demo
      Совместимые версии CMS
          Модуль тестировался на OpenCart 2.0.x.x, 2.1.x.x, 2.2.x.x, 2.3.x.x
          Версию модуля для OpenCart 1.5, ocStore 1.5 можно скачать здесь
      Локализация:
      Английский; Русский; Украинский. Простая установка
      Скопировать содержимое папки [upload] в корень движка.
      Обновление
      Скопировать содержимое папки [upload] в корень движка, с заменой, поверх старой версии.
      Лицензия:
      Модуль реализуется по принципу "1 покупка – 1 доменное имя"; Запрещается передавать файлы модуля третьим лицам как на платной, так и на безвозмездной основе. Техническая поддержка
      Техническая поддержка доступна пользователям из списка покупателей модуля.
      Если вы обращаетесь с просьбой разобраться в проблеме, то для экономии времени укажите:
      адрес сайта доступ в админ-панель доступ на FTP-сервер  
      По вопросам технической поддержки или консультаций касательно наших продуктов, Вы можете связаться с нами через: 
      Личные сообщения на форуме; Режим работы с 10-00 до 18-00 по киевскому времени за исключением выходных и праздничных дней. 
      Обращайтесь будем рады помочь!
      Добавил Sha Добавлено 04.04.2016 Категория Обратная связь, звонки Системные требования php версии не ниже 5.4 Сайт разработчика http://r.konotop.info Старая цена Метод активации Автоматическая активация Ioncube Loader Нет OpenCart 2.3
      2.2
      2.1
      2.0 ocStore 2.3
      2.2
      2.1 OpenCart.Pro, ocShop Не проверялось  
    • От Sha
      Обратная связь с покупателем: Опросы, голосование, анкетирование.
       
      Данный OpenCart модуль позволяет проводить опросы, голосования и анкетирование посетителей сайта. Это простой маркетинговый инструмент для изучения аудитории сайтов, с помощью которого Вы сможете многое узнать о пользователях сайта, об их мнениях и предпочтениях. Важным преимуществом данного дополнения является получение статистики ответов на вопросы, на основании которой Вы сможете проанализировать и определить стратегию развития и улучшения сайта. Хотите узнать, что думает аудитория Вашего сайта, получайте ответы легко и быстро с помощью модуля опросов!
       

      Возможности:
      Создание любого количества опросов; Неограниченное количество вопросов и ответов; Поддержка нескольких языков; Единоразовое голосование для каждого пользователя; Запоминание ответа на последний вопрос, вывод нового вопроса при следующем входе посетителя; Создание виджетов на любой из страниц сайта (1 виджет - 1 опрос); В конце опроса, можно вывести любую полезную информацию: ссылку, промокод для скидки, предложить товар к покупке; Количественная статистика ответов отдельно по каждому голосованию; Статистика по ответам в процентном соотношении.  
      Демо модуля:
      Демо клиентская часть.
      Создать новый виджет (Админка)
      Уже созданный виджет пример (Админка)
      Список опросов (Админка)
      Статистика ответов (Админка)
      Имя пользователя: demo. Пароль: demo
      Совместимые версии CMS
          Модуль тестировался на OpenCart 2.0.x.x, 2.1.x.x, 2.2.x.x, 2.3.x.x
          Версию модуля для OpenCart 1.5, ocStore 1.5 можно скачать здесь
      Локализация:
      Английский; Русский; Украинский. Простая установка
      Скопировать содержимое папки [upload] в корень движка.
      Обновление
      Скопировать содержимое папки [upload] в корень движка, с заменой, поверх старой версии.
      Лицензия:
      Модуль реализуется по принципу "1 покупка – 1 доменное имя"; Запрещается передавать файлы модуля третьим лицам как на платной, так и на безвозмездной основе. Техническая поддержка
      Техническая поддержка доступна пользователям из списка покупателей модуля.
      Если вы обращаетесь с просьбой разобраться в проблеме, то для экономии времени укажите:
      адрес сайта доступ в админ-панель доступ на FTP-сервер  
      По вопросам технической поддержки или консультаций касательно наших продуктов, Вы можете связаться с нами через: 
      Личные сообщения на форуме; Режим работы с 10-00 до 18-00 по киевскому времени за исключением выходных и праздничных дней. 
      Обращайтесь будем рады помочь!
    • От markimax
      Логин / пароль:
      demo / demo
       
      Документация  
      Более 10`000 интернет магазинов выбрали SEO CMS для работы
      SEO CMS JET CACHE :: Jet Cache - быстрая система кеширования страниц, контроллеров и методов моделей opencart

      Версия под opencart 3.x высылается по запросу
      Возможности
       
      - кеширует полностью страницы при полной интеграции с opencart (позволяет кешировать и для зарегистрированных пользователей и изменений корзины а также в зависимости от изменений в модулях)  
      - кеширует выбранные контроллеры (т е фактически  любые модули, будь то меню или т.п. а также полностью кеширует позиции (уникальная технология которая не реализовано ни в одном модуле кеширования для opencart) (с))  
      - кеширует методы моделей opencart (подсчет количества товаров и т п )  
      - простая установка и обновление  
      - гибкие настройки  
      - поддержка мультиязычности  
      - поддержка мультимагазинов  
      - поддержка протоколов https и http  
      - гибкая взаимосвязь с любым функционалом платформы SEO CMS  
      - совместимость с любой темой, любыми модулями, которые соответствуют стандартам программирования  
      - поддержка кеширования sitemap Чем модуль лучше других
       
      - уникальные технологии кеширования не имеющие аналогов в opencart (уникальная технология полной интеграции с opencart, в отличии от всех кешировщиков которые сделанны по технологии v2pc)  
      - модуль работает с любыми темами и модулями Требования
       
      Opencart 2.x или любая сборка на нем (ocStore, Opencart.PRO, или другие) PHP 5.3 или выше Модуль НЕ заменяет файлы системы Модуль НЕ использует ioncube  
      Совместимость модуля
       
      Opencart 2.x или любая сборка на нем (ocStore, Opencart.PRO, или другие) Любая тема или любые модули (которые сделаны без ошибок, согласно стандартов программирования или верстки) для оpencart 2.x  
      Установка, настройка
       
      Если пользователь хочет чтобы сотрудник службы технической поддержки проделал работу по установке и настройке модуля вместо пользователя на сервере пользователя, это уже услуга + 590 рублей  
      Лицензия Все права на модуль принадлежат разработчикам opencartadmin.com Условия использования лицензии: один домен - одна лицензия (покупка продукта для каждого домена). Условия использования лицензии - "на владельца". Далее...
    • От so0EmFD190
      SET timestamp=1540805733;
      # Query_time: 1.707224  Lock_time: 0.000562  Rows_sent: 25  Rows_examined: 808258

      SELECT value_id, option_id, total FROM (SELECT p.manufacturer_id AS value_id, 'm' AS option_id, COUNT(p.manufacturer_id) AS total FROM oc_product p LEFT JOIN oc_product_to_category p2c ON (p.product_id = p2c.product_id) WHERE p.status = '1' AND p2c.category_id = '82' AND p.product_id IN(SELECT oov2p1.product_id FROM oc_ocfilter_option_value_to_product oov2p1 INNER JOIN oc_ocfilter_option_value_to_product oov2p2 ON (oov2p1.product_id = oov2p2.product_id) WHERE oov2p1.option_id = '30425' AND (oov2p1.value_id = '1742734348' OR oov2p1.value_id = '2076164755') AND oov2p2.option_id = '30454' AND (oov2p2.value_id = '1093219734')) GROUP BY p.manufacturer_id UNION ALL SELECT p.stock_status_id AS value_id, 's' AS option_id, COUNT(p.stock_status_id) AS total FROM oc_product p LEFT JOIN oc_product_to_category p2c ON (p.product_id = p2c.product_id) WHERE p.status = '1' AND p2c.category_id = '82' AND (p.manufacturer_id = '66') AND p.product_id IN(SELECT oov2p1.product_id FROM oc_ocfilter_option_value_to_product oov2p1 INNER JOIN oc_ocfilter_option_value_to_product oov2p2 ON (oov2p1.product_id = oov2p2.product_id) WHERE oov2p1.option_id = '30425' AND (oov2p1.value_id = '1742734348' OR oov2p1.value_id = '2076164755') AND oov2p2.option_id = '30454' AND (oov2p2.value_id = '1093219734')) GROUP BY p.stock_status_id UNION ALL SELECT oov2p.value_id, oov2p.option_id, COUNT(p.product_id) AS total FROM oc_ocfilter_option_value_to_product oov2p LEFT JOIN oc_product_to_category p2c ON (oov2p.product_id = p2c.product_id) LEFT JOIN oc_product p ON (oov2p.product_id = p.product_id) WHERE oov2p.value_id > '0' AND p.status = '1' AND p2c.category_id = '82' AND (p.manufacturer_id = '66') AND p.product_id IN(SELECT oov2p1.product_id FROM oc_ocfilter_option_value_to_product oov2p1 INNER JOIN oc_ocfilter_option_value_to_product oov2p2 ON (oov2p1.product_id = oov2p2.product_id) WHERE oov2p1.option_id = '30425' AND (oov2p1.value_id = '1742734348' OR oov2p1.value_id = '2076164755') AND oov2p2.option_id = '30454' AND (oov2p2.value_id = '1093219734')) GROUP BY oov2p.option_id, oov2p.value_id UNION ALL SELECT oov2p.value_id, oov2p.option_id, COUNT(p.product_id) AS total FROM oc_product p LEFT JOIN oc_product_to_category p2c ON (p.product_id = p2c.product_id) LEFT JOIN oc_ocfilter_option_value_to_product oov2p ON (p.product_id = oov2p.product_id) WHERE oov2p.option_id = '30425' AND p.status = '1' AND p2c.category_id = '82' AND (p.manufacturer_id = '66') AND p.product_id IN(SELECT oov2p1.product_id FROM oc_ocfilter_option_value_to_product oov2p1 WHERE oov2p1.option_id = '30454' AND (oov2p1.value_id = '1093219734')) GROUP BY oov2p.option_id, oov2p.value_id UNION ALL SELECT oov2p.value_id, oov2p.option_id, COUNT(p.product_id) AS total FROM oc_product p LEFT JOIN oc_product_to_category p2c ON (p.product_id = p2c.product_id) LEFT JOIN oc_ocfilter_option_value_to_product oov2p ON (p.product_id = oov2p.product_id) WHERE oov2p.option_id = '30454' AND p.status = '1' AND p2c.category_id = '82' AND (p.manufacturer_id = '66') AND p.product_id IN(SELECT oov2p1.product_id FROM oc_ocfilter_option_value_to_product oov2p1 WHERE oov2p1.option_id = '30425' AND (oov2p1.value_id = '1742734348' OR oov2p1.value_id = '2076164755')) GROUP BY oov2p.option_id, oov2p.value_id) results LIMIT 0, 25;
  • Последние посетители   0 пользователей онлайн

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

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.