Автор Тема: Медленные запросы.  (Прочитано 495 раз)

06 Июнь 2018, 12:06:41
  • Новичок
  • *
  • Сообщений: 8
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Добрый день.

В последнее время столкнулся с проблемой: Google и Яндекс присылают уведомления о том, что страницы сайта очень медленно работают (скорость ответа 3 секунды).

Поддержка хостинга говорит о том, что скрипты сайта неправильно работают и создают огромную нагрузку на MySQL сервер.
При граничном значении в 100 минут сайт потребляет намного больше. Вот график: http://prntscr.com/jri6e6

Посоветовали разобраться с медленными запросами.
Зашел в раздел "Медленные запросы" и обнаружил что в 95% случаях медленным запросом является вот этот код:

SELECT c.id_category, c.id_parent, cl.name, (SELECT COUNT(DISTINCT p.id_product) #
 
               FROM ps_category_product cp
               LEFT JOIN ps_product p ON (p.id_product = cp.id_product) INNER JOIN ps_product_shop product_shop
      ON (product_shop.id_product = p.id_product AND product_shop.id_shop = 1)
LEFT JOIN `ps_manufacturer` m ON (m.id_manufacturer = p.id_manufacturer)
 
               WHERE cp.id_category = c.id_category
               AND product_shop.active = 1 AND product_shop.`visibility` IN ("both", "catalog")
      AND EXISTS (SELECT *
      FROM `ps_product_attribute_combination` pac
      LEFT JOIN `ps_product_attribute` pa ON (pa.`id_product_attribute` = pac.`id_product_attribute`)
      WHERE pa.id_product = p.id_product AND pac.`id_attribute` = 11 OR pac.`id_attribute` = 48 ORpac.`id_attribute` = 40 OR pac.`id_attribute` = 56 OR pac.`id_attribute` = 24)
) count_products
               FROM ps_category c
               LEFT JOIN ps_category_lang cl ON (cl.id_category = c.id_category AND cl.`id_shop` = 1 AND cl.id_lang = 3) RIGHT JOIN ps_category_group cg ON (cg.id_category = c.id_category AND cg.`id_group` IN (1)) WHEREc.nleft > 51
               AND c.nright < 60
               AND c.level_depth <= 3
               AND c.active = 1
               GROUP BY c.id_category ORDER BY c.nleft, c.POSITION


Время ответа от 25 до 39 секунд.

Остальные 5% медленных запросов содержат этот код:

SELECT MAX(c.`date_add`) AS last_visit
      FROM `ps_guest` g
      LEFT JOIN `ps_connections` c ON c.id_guest = g.id_guest
      WHERE g.`id_customer` = 0 LIMIT 1


Время ответа - 5 секунд.

Мне никто не может объяснить, за что отвечает этот код и можно ли исправить ситуацию.

Обращаюсь к Вам за помощью, как к людям с большим опытом.
Буду очень благодарен за разъяснения.

Заранее спасибо!
06 Июнь 2018, 14:10:49
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 22125
  • Репутация: +25303/-1
  • Prestashop - просто и эффективно
    • Просмотр профиля
Удалите модули статистики.
Очистите базу.
Включите кеширование.
После этих действий проверьте скорость работы сайта.
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
06 Июнь 2018, 14:34:32
Ответ #2
  • Новичок
  • *
  • Сообщений: 8
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Если Вас не затруднит опишите пожалуйста более подробно что и где нужно сделать.
Я не разбираюсь...

Спасибо за предыдущий ответ!
06 Июнь 2018, 15:45:44
Ответ #3
  • Старожил
  • ****
  • Сообщений: 310
  • Репутация: +7/-0
  • Сообщество PrestaShop
    • Просмотр профиля
    • Адвокаты, юристы. Киев, Чернигов
Удалите модули статистики.
Очистите базу.
Включите кеширование.
После этих действий проверьте скорость работы сайта.

Присоединяюсь к теме -
Очистить базу данных посредством модуля очистки, который встроен в PrestaShop приводит к тому, что отказываются работать некоторые скрипты. В частности перестают работать слайдеры и пр.
И если можно по подробнее о каком кешировании Вы говорите у меня если включить кеширование смарти (рекомендуется) так же перестает отображаться слайдер.
По статистике да все верно когда отключил ВСЕ модули скорость увеличилась в разы.
Установка, настройка, сайтов, интернет-магазинов, наполнение интернет - магазинов на движке WP, PrestaShop.
Юридические услуги http://kanon-lawyers.com.ua на WP Интернет - магазин https://balagan.pp.ua на PrestaShop
06 Июнь 2018, 15:53:33
Ответ #4
  • Новичок
  • *
  • Сообщений: 8
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
А какие именно модули лучше отключить?
Я в "Модулях и сервисах" насчитал 24 включенных модуля в разделе "Статистика и аналитика".

По поводу скриптов - нельзя, чтобы они легли.
У меня столько доработок по сайту сделано..... открыты фильтры для индексации, формирование урлов, разметки, перелинковки....
06 Июнь 2018, 16:20:59
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 520
  • Репутация: +4/-0
  • Сообщество PrestaShop
    • Просмотр профиля
была подобная проблема на сайте , комбинаций масса, плюс на комбинации скидки, во первых тормозили модули в левой колонке, спец товары, новые товары, потом на хостинге поддержка , что-то делала и скорость значительно увеличивалась, хостинг багет
06 Июнь 2018, 16:33:37
Ответ #6
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
.
У меня столько доработок по сайту сделано..... открыты фильтры для индексации, формирование урлов, разметки, перелинковки....
Вот эти доработки и нужно проверять. Фильтры нагружают сайт по полной. Переопределение url тоже создает множественные запросы.
06 Июнь 2018, 16:40:53
Ответ #7
  • Новичок
  • *
  • Сообщений: 8
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
.
У меня столько доработок по сайту сделано..... открыты фильтры для индексации, формирование урлов, разметки, перелинковки....
Вот эти доработки и нужно проверять. Фильтры нагружают сайт по полной. Переопределение url тоже создает множественные запросы.

Все дело в том, что эти медленные запросы появились первый раз 29.05.18 и после пришли письма от Google и Яндекс. До этого сайт работал нормально. Во всяком случае я ничего не замечал....
А доработки сделаны давно.
06 Июнь 2018, 16:45:52
Ответ #8
  • Ветеран
  • *****
  • Сообщений: 520
  • Репутация: +4/-0
  • Сообщество PrestaShop
    • Просмотр профиля
техподдержку хостинга побеспокойте, пусть посмотрят, что на эту дату  поменялось на хостинге, если вы ничего не меняли, то причина там, если не помогут, то можно на других сайт протестировать, на многих бесплатные периоды есть.
06 Июнь 2018, 16:47:58
Ответ #9
  • Новичок
  • *
  • Сообщений: 8
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Техподдержа хостинга говорит, что мы ничего не знаем, разбирайтесь сами. С нашей стороны все хорошо.
Может действительно на другой хостинг перенести....
06 Июнь 2018, 17:15:30
Ответ #10
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Вам дейстыительно нужно арендовать другой хостинг в тестовый период перенести сайт и сравнить скорость.