delord

Проблема оптимизацией запросов

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

delord    0

Добрый вечер друзья, есть проблема загрузка категории в магазине доходит до 30 секунд

 

В логе медленных запросов постоянно вот такое вот:

 

Страница:/zhidkosti/
Источник:/home/www/system/storage/modification/catalog/model/catalog/product.php
Время выполнения: 202.28мс 
 
SELECT DISTINCT *, pd.name AS name, p.image, (SELECT md.name FROM oc_manufacturer_description md WHERE md.manufacturer_id = p.manufacturer_id AND md.language_id = '1') AS manufacturer, (SELECT price FROM oc_product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '1' AND pd2.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) AS discount, (SELECT price FROM oc_product_special ps WHERE ps.product_id = p.product_id AND ps.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 LIMIT 1) AS special, (SELECT points FROM oc_product_reward pr WHERE pr.product_id = p.product_id AND customer_group_id = '1') AS reward, (SELECT ss.name FROM oc_stock_status ss WHERE ss.stock_status_id = p.stock_status_id AND ss.language_id = '1') AS stock_status, (SELECT wcd.unit FROM oc_weight_class_description wcd WHERE p.weight_class_id = wcd.weight_class_id AND wcd.language_id = '1') AS weight_class, (SELECT lcd.unit FROM oc_length_class_description lcd WHERE p.length_class_id = lcd.length_class_id AND lcd.language_id = '1') AS length_class, (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 COUNT(*) AS total FROM oc_review r2 WHERE r2.product_id = p.product_id AND r2.status = '1' GROUP BY r2.product_id) AS reviews, p.sort_order 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) LEFT JOIN oc_manufacturer m ON (p.manufacturer_id = m.manufacturer_id) WHERE p.product_id = '4339' AND pd.language_id = '1' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0'
 
 
Очень прошу помощи...
Изменено пользователем delord

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


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

Было бы отлично еще взглянуть на сам магазин.

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


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

<= NOW()
раз

 

 

pd.language_id = '1' 

два. где на сайте языки?

 

 

три: составные индексы

 

ну а дальше 4, 5, 6, ...

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


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

Да конечно jomo.com.ua

 

модуль AutoSearch 2x на сайте - откуда?

в покупателях не числитесь

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


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

модуль AutoSearch 2x на сайте - откуда?

в покупателях не числитесь

Все модуля ставил человек ник на форуме zomo

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


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

ок, вопрос по модулю снят

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


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

пробуйте в запросе заменить

(SELECT md.name FROM oc_manufacturer_description md WHERE md.manufacturer_id = p.manufacturer_id AND md.language_id = '1') AS manufacturer,

 

на

m.name AS manufacturer,

 

и Otvet правильно подсказывает

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


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

пробуйте в запросе заменить

(SELECT md.name FROM oc_manufacturer_description md WHERE md.manufacturer_id = p.manufacturer_id AND md.language_id = '1') AS manufacturer,

 

на

m.name AS manufacturer,

 

и Otvet правильно подсказывает

 

 

 

 

Нет, у него имя производителя в md

 

Нужен PIMARY KEY (manufactutrer_id, language_id) - а может и есть

 

Но в таком случае можно и запрос пределать

SELECT DISTINCT *, 
	pd.name AS name, 
	p.image, 
	md.name as manufacturer,
	(SELECT price FROM oc_product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '1' AND pd2.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) AS discount, 
	(SELECT price FROM oc_product_special ps WHERE ps.product_id = p.product_id AND ps.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 LIMIT 1) AS special, 
	(SELECT points FROM oc_product_reward pr WHERE pr.product_id = p.product_id AND customer_group_id = '1') AS reward, 
	(SELECT ss.name FROM oc_stock_status ss WHERE ss.stock_status_id = p.stock_status_id AND ss.language_id = '1') AS stock_status, 
	(SELECT wcd.unit FROM oc_weight_class_description wcd WHERE p.weight_class_id = wcd.weight_class_id AND wcd.language_id = '1') AS weight_class,
	(SELECT lcd.unit FROM oc_length_class_description lcd WHERE p.length_class_id = lcd.length_class_id AND lcd.language_id = '1') AS length_class,
	(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 COUNT(*) AS total FROM oc_review r2 WHERE r2.product_id = p.product_id AND r2.status = '1' GROUP BY r2.product_id) AS reviews, 
	p.sort_order 
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) 
LEFT JOIN oc_manufacturer md ON (p.manufacturer_id = md.manufacturer_id AND md.language_id = '1') 
WHERE p.product_id = '4339' 
AND pd.language_id = '1' 
AND p.status = '1' 
AND p.date_available <= NOW() 
AND p2s.store_id = '0'

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


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

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

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

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

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

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

Войти

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

Войти


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

    • От Otvet

      300.00 руб · Срок продления: 100.00 руб за 12 месяцев
      Скачать/Купить дополнение


      [SEO] Full IndeX : Улучшение индексации

      Модуль помогает улучшить индексацию, более продуктивно "прокачать"1 товары и решить проблему дублирования2 страниц постраничной навигации, что позволяет поднять в выдаче НЧ-запросы страниц товаров расположенных на удаленных страницах. Управлять множеством факторов и решает ряд недочетов в Opencart.
      1 - Обособленные страницы (доступные только через sitemap) не получают статический вес [PR] и имеют пустой анкор-лист.
      2 - Чем плохи дубли:
      ухудшают и замедляют индексацию потеря веса (pagerank) "основной" страницей категории/производителя часть товаров не могут получить внутренний вес ____________________________________________________________________________
       
       
      Что делает модуль:
      для google: правильно объединяет страницы в одну цепочку с атрибутами prev | next https://support.google.com/webmasters/answer/1663744?hl=ru уникализирует страницы, они перестают выпадать из основного индекса правильно выводит директивы canonical, с учетом таких факторов как тип url и путь в url, когда нужно и где нужно позволяет управлять выводом canonical самостоятельно способствует полноценной индексации товаров при отсутствии sitemap (либо когда не принимается яндексом из-за размера) управление get-параметрами (редиректы, canonical, seo_pro) позволяет полноценно использовать seo-фильтры позволяет убирать "хвосты" в индексе позволяет блокировать индексации отзывов как отдельного документа и сделать в то же время более полную индексацию отзывов способствует распределению веса и более полной перелинковке способствует заполнению анкор листа товаров на страницах 2 и далее посадочные страницы категория/бренд, для исключения дублей и использования в продвижении и многое другое + много нового в версии 4.0 (читайте выше)  
      ЕЩЕ больше функционала:
       
       
      [bonus] Sitemap Lite (OCMOD для opencart 2.x):
      заменяет оригинальный catalog/controller/feed/google_sitemap.php
      ускоренная генерация благодаря собственной функции выборки товаров (~ в 10 раз) добавление lastmod (значительно ускоряет индексацию) устранение дублей товаров валидация яндексом фикс &amp при использовании seo_pro  
      Для автоматического заполнения SEO URL (ЧПУ) можно установить это дополнение: https://opencartforum.com/files/file/2833-автоматическое-заполнение-чпу-ocmod/
       
      Преимущества перед закрытием страниц в robots.txt
      Преимущества перед директивой noindex (no)follow
      Преимущества перед простым открытием страниц для индексации
      Преимущества перед директивой canonical
      Для проверки работы после установки напишите адрес сайта в ЛС автору
      "Цитаты великих" или "А нужен ли модуль?"
      Для более продуктивной борьбы с дублями так же желательно наличие SEO_Pro и правильного robots.txt
      Добавил Otvet Добавлено 15.08.2015 Категория SEO, карта сайта, оптимизация Системные требования - для opencart 2.x установка производится через стандартный инструмент Extension Installer- для opencart 1.5.x vqmod 2.4 или выше Сайт разработчика Старая цена 390 Метод активации Автоматическая активация 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.4.1 ocStore 2.3
      2.2
      2.1
      1.5.5.1.2
      1.5.5.1.1
      1.5.5.1
      1.5.4.1.2
      1.5.4.1.1
      1.5.4.1
      1.5.3.1
      1.5.2.1
      1.5.1.3 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1
      OcShop 2.0.3.х
      OcShop 1.5.6.4.х  
    • От sitecreator

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


      Image Compressor & Watermark (Супер-сжатие картинок JPEG, PNG и "водяной знак")
      Оптимизация (сжатие) изображений - Гугл PageSpeed одобряет.
      "Компрессор" (Image Compressor) обеспечит максимальное сжатие  на обычном хостинге (при наличии функции exec php)  и всегда на VDS.
      Установка софта (mozjpeg и  optiPNG) в два клика на обычный хостинг и VDS (не требует знаний Linux).
      Вся магия здесь:
       

       
      Демо 2 (клиентская часть): http://watermark.sitecreator.pro
      Демо 2 (админка): http://watermark.sitecreator.pro/admin/index.php?route=extension/module/watermark_by_sitecreator
       
      Демо 1.5 (клиентская часть): http://watermark15.sitecreator.pro
      Демо 1.5 (админка): http://watermark15.sitecreator.pro/admin/index.php?route=module/watermark_by_sitecreator
       
      пользователь: DEMO
      пароль: DEMO
       
       

       
      Модуль по максимуму использует возможности imagick (если установлен), что уже позволяет получить лучшие по качеству и размеру изображения.  Кроме того, в отличие от дефолтного GD использование imagick позволяет уменьшить размер файла за счет очистки изображения от ненужной информации.
       
       
      Максимум настроек водяного знака (watermark): его позиция, поворот, прозрачность и т. д.
      Можно настроить ограничение (запретить применять) для водяного знака как по имени файла/папок, так и по  размерам.
      Адаптивный ресайз (resize, обрезка) изображения.
       

       
      Основной функционал модуля - это добавление водяного знака на изображения.  Как бонус - это использование автоматического  супер-сжатия картинок.
      С версии 1.1.0 получаете максимальное сжатие для JPEG, PNG благодаря еще поддержке WebP.
      Использование WebP задумывалось как компромиссное решение когда нет возможности использовать mozjpeg.  А mozjpeg сейчас удалось установить практически везде.
       
      Немного о возможности использования WebP на обычном хостинге:
       
       
       
      Проверенные хостеры, которые поддерживают mozjpeg, OptiPNG,  WebP , т. е. возможно суперсжатие в полной мере.
       
       
      Совместим с Opencart, Ocstore, opencart.pro версии 1.5.* и 2+
      требования: php 5.5+ (5.5, 5.6, 7.0)  Версию php у хостера вы можете изменить самостоятельно через панель управления. 
      Ioncube Loader v5.0+
      Модуль совместим с ускорителями/кешерами Jet Cache и Turbo и, скорее всего, с остальными.
       
       
      Пожалуйста, лицензию запрашивайте, написав мне на почту или в личку.
       
      Супер-сжатие выполняется согласно рекомендациям Гугла PageSpeed Insights и позволяет добиться снижения размера файлов изображений и, как следствие, уменьшения трафика.
      Google  PageSpeed Insights благодаря этому дает более высокую оценку вашему сайту в баллах.
       
      mozjpeg, optipng необязателен к установке, это лишь рекомендация для достижения максимального сжатия.
      Процесс установки этого софта сводится к нажатию двух кнопок в модуле.
      Это работает как на обычном хостинге, так и на VDS.
       
      Инструкция для самостоятельной сборки серверного софта оставлена для любознательных. Не нужно ее пугаться и не нужно повторять все эти действия.
      Модуль Компрессор уже содержит средства диагностики и вывода информации.  Пользуйтесь ими (вкладка "сервис").
       
       
      Инструкция по установке дополнительного софта для WINDOWS :
      (для локальной машины разработчика, например. ).
       
       
       
      Установку модуля осуществляет покупатель самостоятельно или его доверенное лицо.
       

       
       

       

       
       
      Модуль не может пока автоматически сжимать изображения, которые вы добавляете как ссылки, т. е. которые не попадают в кеш.  Это будет учтено в будущих версиях.
       
      Для SEO CMS сделано решение, позволяющее также использовать супер-сжатие по максимуму и водяной знак в этом модуле.  Сделано как отдельное дополнение к модулям "Компрессор" (Image Compressor) и SEO CMS.  Такое решение обусловлено тем, что указанный модуль использует свою библиотеку  и модели для работы с изображениями.
      Находится здесь: SEO CMS mod for Image Compressor & Watermark
       
      Совместимость со специфическими модулями и модификаторами,
      (затрагивающими системную библиотеку и модель image.php)
       
       
      ================
      История версий
      ==============
       
       
       
       
       
      Добавил sitecreator Добавлено 26.08.2017 Категория Кэширование, сжатие, ускорение Системные требования php 5.5+, Ioncube Loader 5+ Сайт разработчика https://sitecreator.ru/ Старая цена 1650 Метод активации По запросу в ЛС
      По запросу на почту Ioncube Loader Требуется OpenCart 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.4.1
      1.5.3.1 ocStore 2.3
      2.1
      1.5.5.1.2
      1.5.5.1.1
      1.5.5.1
      1.5.4.1.2
      1.5.4.1.1
      1.5.4.1
      1.5.3.1
      1.5.2.1
      1.5.1.3 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1
      OcShop 1.5.6.4.х  
    • От sitecreator
      Оптимизация (сжатие) изображений - Гугл PageSpeed одобряет.
      "Компрессор" (Image Compressor) обеспечит максимальное сжатие  на обычном хостинге (при наличии функции exec php)  и всегда на VDS.
      Установка софта (mozjpeg и  optiPNG) в два клика на обычный хостинг и VDS (не требует знаний Linux).
      Вся магия здесь:
       

       
      Демо 2 (клиентская часть): http://watermark.sitecreator.pro
      Демо 2 (админка): http://watermark.sitecreator.pro/admin/index.php?route=extension/module/watermark_by_sitecreator
       
      Демо 1.5 (клиентская часть): http://watermark15.sitecreator.pro
      Демо 1.5 (админка): http://watermark15.sitecreator.pro/admin/index.php?route=module/watermark_by_sitecreator
       
      пользователь: DEMO
      пароль: DEMO
       
       

       
      Модуль по максимуму использует возможности imagick (если установлен), что уже позволяет получить лучшие по качеству и размеру изображения.  Кроме того, в отличие от дефолтного GD использование imagick позволяет уменьшить размер файла за счет очистки изображения от ненужной информации.
       
       
      Максимум настроек водяного знака (watermark): его позиция, поворот, прозрачность и т. д.
      Можно настроить ограничение (запретить применять) для водяного знака как по имени файла/папок, так и по  размерам.
      Адаптивный ресайз (resize, обрезка) изображения.
       

       
      Основной функционал модуля - это добавление водяного знака на изображения.  Как бонус - это использование автоматического  супер-сжатия картинок.
      С версии 1.1.0 получаете максимальное сжатие для JPEG, PNG благодаря еще поддержке WebP.
      Использование WebP задумывалось как компромиссное решение когда нет возможности использовать mozjpeg.  А mozjpeg сейчас удалось установить практически везде.
       
      Немного о возможности использования WebP на обычном хостинге:
       
       
       
      Проверенные хостеры, которые поддерживают mozjpeg, OptiPNG,  WebP , т. е. возможно суперсжатие в полной мере.
       
       
      Совместим с Opencart, Ocstore, opencart.pro версии 1.5.* и 2+
      требования: php 5.5+ (5.5, 5.6, 7.0)  Версию php у хостера вы можете изменить самостоятельно через панель управления. 
      Ioncube Loader v5.0+
      Модуль совместим с ускорителями/кешерами Jet Cache и Turbo и, скорее всего, с остальными.
       
       
      Пожалуйста, лицензию запрашивайте, написав мне на почту или в личку.
       
      Супер-сжатие выполняется согласно рекомендациям Гугла PageSpeed Insights и позволяет добиться снижения размера файлов изображений и, как следствие, уменьшения трафика.
      Google  PageSpeed Insights благодаря этому дает более высокую оценку вашему сайту в баллах.
       
      mozjpeg, optipng необязателен к установке, это лишь рекомендация для достижения максимального сжатия.
      Процесс установки этого софта сводится к нажатию двух кнопок в модуле.
      Это работает как на обычном хостинге, так и на VDS.
       
      Инструкция для самостоятельной сборки серверного софта оставлена для любознательных. Не нужно ее пугаться и не нужно повторять все эти действия.
      Модуль Компрессор уже содержит средства диагностики и вывода информации.  Пользуйтесь ими (вкладка "сервис").
       
       
      Инструкция по установке дополнительного софта для WINDOWS :
      (для локальной машины разработчика, например. ).
       
       
       
      Установку модуля осуществляет покупатель самостоятельно или его доверенное лицо.
       

       
       

       

       
       
      Модуль не может пока автоматически сжимать изображения, которые вы добавляете как ссылки, т. е. которые не попадают в кеш.  Это будет учтено в будущих версиях.
       
      Для SEO CMS сделано решение, позволяющее также использовать супер-сжатие по максимуму и водяной знак в этом модуле.  Сделано как отдельное дополнение к модулям "Компрессор" (Image Compressor) и SEO CMS.  Такое решение обусловлено тем, что указанный модуль использует свою библиотеку  и модели для работы с изображениями.
      Находится здесь: SEO CMS mod for Image Compressor & Watermark
       
      Совместимость со специфическими модулями и модификаторами,
      (затрагивающими системную библиотеку и модель image.php)
       
       
      ================
      История версий
      ==============
       
       
       
       
       
    • От sitecreator

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


      SEO CMS mod for Image Compressor & Watermark
      Добавляет суперсжатие JPEG, PNG и watermark для модуля
      SEO CMS TOP 2: Блог | Новости | Отзывы | Галерея | Формы
      (разработчик markimax )
       
      Данный модуль не является самостоятельным дополнением и требует наличия установленного модуля
      Image Compressor & Watermark (Супер-сжатие картинок JPEG, PNG и "водяной знак")
      (разработчик sitecreator )
       
      Т. е. данный модуль расширяет возможности указанных выше модулей.
       
      Поскольку SEO CMS не использует (или использует ограниченно) модели image и системную библиотеку движка, то БЫЛО невозможно наложение watermark и применение суперсжатия к изображениям, создаваемым  SEO CMS.
      Теперь таких ограничений нет благодаря данному дополнению.
       
      Адаптивный ресайз, выставляемый в настройках SEO CMS работает,  данные настройки имеют более высокий приоритет чем настройка адаптивной обрезки (ресайза) в модуле "Компрессор изображений".
       
      Установка выполняется через обычный установщик дополнений ocmod в админке сайта.
      Добавил sitecreator Добавлено 18.10.2017 Категория Кэширование, сжатие, ускорение Системные требования не является самостоятельным дополнением Сайт разработчика https://sitecreator.ru/ Старая цена Метод активации Без активации 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  
    • От sitecreator
      Добавляет суперсжатие JPEG, PNG и watermark для модуля
      SEO CMS TOP 2: Блог | Новости | Отзывы | Галерея | Формы
      (разработчик markimax )
       
      Данный модуль не является самостоятельным дополнением и требует наличия установленного модуля
      Image Compressor & Watermark (Супер-сжатие картинок JPEG, PNG и "водяной знак")
      (разработчик sitecreator )
       
      Т. е. данный модуль расширяет возможности указанных выше модулей.
       
      Поскольку SEO CMS не использует (или использует ограниченно) модели image и системную библиотеку движка, то БЫЛО невозможно наложение watermark и применение суперсжатия к изображениям, создаваемым  SEO CMS.
      Теперь таких ограничений нет благодаря данному дополнению.
       
      Адаптивный ресайз, выставляемый в настройках SEO CMS работает,  данные настройки имеют более высокий приоритет чем настройка адаптивной обрезки (ресайза) в модуле "Компрессор изображений".
       
      Установка выполняется через обычный установщик дополнений ocmod в админке сайта.
  • Последние посетители   0 пользователей онлайн

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