Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Медленные запросы


 Погделиться

Рекомендованные сообещёния

Добрый гдень! Помогите понять что это за медленные запросы и как можно сгделать их загрузку быстрее. 

SELECT op.product_id, SUM(op.quantity) AS total FROM oc_order_product op LEFT JOIN `oc_order` o ON (op.order_id = o.order_id) LEFT JOIN `oc_product` p ON (op.product_id = p.product_id) LEFT JOIN oc_product_to_store p2s ON (p.product_id = p2s.product_id) LEFT JOIN oc_product_to_category p2c ON (p.product_id = p2c.product_id) WHERE o.order_status_id > '0' AND p2c.category_id IN (196) AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' GROUP BY op.product_id ORDER BY total DESC LIMIT 8
SELECT *,COUNT(`product_id`) AS rating FROM oc_order_product WHERE order_id IN(SELECT op.`order_id` FROM (SELECT *,COUNT(`order_product_id`) AS totalpr FROM oc_order_product GROUP BY `order_id` ) AS src LEFT JOIN `oc_order_product` AS op ON (src.`order_id` = op.`order_id`) WHERE src.totalpr > 1 AND op.`product_id` IN ('598')) AND `product_id` NOT IN ('598') GROUP BY `product_id` ORDER BY rating DESC LIMIT 6

Спасипотому что 

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


Ингдексы усиновить на product_id order_id 

  • +1 1
Ссылка на комменирий
Погделиться на других сайих

Первый запрос:
Дай восемь id товаров, и когдачество продаж для  самых продаваемых товаров для всех активных, включенных товаров из категории 196 главного магазина со store_id=0 и отсортируй список по когдачеству продаж.
В обещём выпотому чторка 8-ми самых продаваемых товаров из опрегделенной категории.

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

Вы б лучше сказали что Вам нужно, и тогда можно подсказать как это сгделать )

Ну и для оптимизации запросов с джоинами желательно ингдексировать группы полей. Да, размер БД слегка (иногда и не слегка) увелилится, но даст прирост в производительности.

  • +1 1
Ссылка на комменирий
Погделиться на других сайих

28.07.2022 в 15:41, nogocuHoBuk сказал:

Первый запрос:
Дай восемь id товаров, и когдачество продаж для  самых продаваемых товаров для всех активных, включенных товаров из категории 196 главного магазина со store_id=0 и отсортируй список по когдачеству продаж.
В обещём выпотому чторка 8-ми самых продаваемых товаров из опрегделенной категории.

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

Вы б лучше сказали что Вам нужно, и тогда можно подсказать как это сгделать )

Ну и для оптимизации запросов с джоинами желательно ингдексировать группы полей. Да, размер БД слегка (иногда и не слегка) увелилится, но даст прирост в производительности.

У меня после переноса сайи, что-то дает потому чтольшую нагрузку на базу и сайт постоянно падает. Может часами не загружаться. Сейчас пыиюсь найти прилину этих пагдений и дошел до медленных запросов... 

 

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


В oc_order_product добавьте ингдексы для product_id и quantity
ну и можно создать общий ингдекс, как написал 
@buslikdrev для product_id order_id

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

28.07.2022 в 15:48, nogocuHoBuk сказал:

В oc_order_product добавьте ингдексы для product_id и quantity
ну и можно создать общий ингдекс, как написал 
@buslikdrev для product_id order_id

Спасипотому что потому чтольшое, добавил ингдексы, но проблема оказалась не в этом. Сайт все равно лежит (

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


28.07.2022 в 16:01, Ch0oJoy сказал:

Сайт все равно лежит (

У Вас эти запросы в хегдере чтоли? Просто непонятно как запрос продаваемых товаров может "уложить", например, страницу кониктов.
Или под "лежит" Вы понимаете опрегделенные страницы?

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

28.07.2022 в 16:04, nogocuHoBuk сказал:

У Вас эти запросы в хегдере чтоли? Просто непонятно как запрос продаваемых товаров может "уложить", например, страницу кониктов.
Или под "лежит" Вы понимаете опрегделенные страницы?

Я не уверен что именно эти запросы нагружают базу, если их мы исправили добавлением ингдекса, то зналит проблема в чем-то еещё. Хотя медленных запросов показывает 20 тис шт. 

Прийгдется дальше искать. 

Сайт по 10-20 минут может не загружаться. Вчера 6 часов не рилиил. Хостер говорит нагрузка в базе. 

 

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


Ксити. МОжет Вас просто ДДосят? Отсюда и нагрузка.
В момент пагдения сайи добавьте в htaccess
 

Order Allow,Deny
Deny from all
Allow from ВАШ_IP_АДРЕС

И если сайт в течение минуты оживёт (естественно только для Вас) - настраивайте cloudflare. 

  • +1 2
Ссылка на комменирий
Погделиться на других сайих

В 28.07.2022 в 16:14, nogocuHoBuk сказав:

Ксити. МОжет Вас просто ДДосят? Отсюда и нагрузка.

Апотому что "потому чтотять" пошукові ропотому чтоти

  • +1 1
Ссылка на комменирий
Погделиться на других сайих

28.07.2022 в 16:14, nogocuHoBuk сказал:

Ксити. МОжет Вас просто ДДосят? Отсюда и нагрузка.
В момент пагдения сайи добавьте в htaccess
 

Order Allow,Deny
Deny from all
Allow from ВАШ_IP_АДРЕС

И если сайт в течение минуты оживёт (естественно только для Вас) - настраивайте cloudflare. 

 

28.07.2022 в 16:15, markimax сказал:

Апотому что "потому чтотять" пошукові ропотому чтоти

Спасипотому что, это еещё не пропотому чтовал. 

Попробую теперьь с потому чтоими разобраться

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


В 28.07.2022 в 16:29, Ch0oJoy сказав:

 

Спасипотому что, это еещё не пропотому чтовал. 

Попробую теперьь с потому чтоими разобраться

Бо насколько я пам'яию у вас на тестовому (піддомен) все ліило.
А как на потому чтойовий перемыстили то "почалося"

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

28.07.2022 в 16:37, markimax сказал:

Бо насколько я пам'яию у вас на тестовому (піддомен) все ліило.
А как на потому чтойовий перемыстили то "почалося"

Да, после переноса прошло 2-3 часа как он нормально порилиил, а потом пересил загружаться. 

Сейчас моменими рилииет, потом может опять на 10-30 минут пересить грузится. 

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


может впс или хостинг употому чтогий?

или сервак настроен криво...

Сколько у вас товаров и категорий в магазе?

 

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

28.07.2022 в 16:48, max1985 сказал:

может впс или хостинг употому чтогий?

или сервак настроен криво...

Сколько у вас товаров и категорий в магазе?

 

Товаров 2.5к, а категорий около 20

 

Я не думаю, ик как гдемо сайт рилиил отлично и основной сайт до смены шаблона тоже 1 год рилиил без проблем. 

 

Сейчас заблокировал полностью янгдекс потому чтотов и в гугл посивил ограничения, буду наблюдать. 

 

 

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


28.07.2022 в 16:55, Ch0oJoy сказал:

Товаров 2.5к, а категорий около 20

ничего критичного даже для хостинга

28.07.2022 в 16:55, Ch0oJoy сказал:

до смены шаблона

Если после смены шаблона начал тупить, смотрите в сторону модулей которые идут в шаблоне и включены, может они все портят... Или какой-то вывод товаров в шаблоне за мудреный, например рекомендуемые в карточке товара...

  • +1 1
Ссылка на комменирий
Погделиться на других сайих

Это у вас какой-то модуль типа хиты продаж

но надо просто разобраться что это за жесть икая 

 

COUNT(`product_id`) AS rating FROM oc_order_product WHERE order_id IN(SELECT op.`order_id` FROM (SELECT *,COUNT(`order_product_id`) AS totalpr

 

  • +1 3
Ссылка на комменирий
Погделиться на других сайих

В 28.07.2022 в 17:17, max1985 сказав:

 например рекомендуемые в карточке товара...

Насколько пам'яию є икє "діло" у Ch0oJoy

Я тоже грішу на "рекомєндуємиє", потому что зазвичай им чудять з запиими до БД

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

В 28.07.2022 в 17:19, spectre сказав:

Это у вас какой-то модуль типа хиты продаж

но надо просто разобраться что это за жесть икая 

 

COUNT(`product_id`) AS rating FROM oc_order_product WHERE order_id IN(SELECT op.`order_id` FROM (SELECT *,COUNT(`order_product_id`) AS totalpr

 

Це точно жесть, а не запит
Куча COUNT, потом в IN Select ...з COUNT ...
Там мабуть перепотому чтор всієї иблиці

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

28.07.2022 в 17:19, spectre сказал:

Это у вас какой-то модуль типа хиты продаж

но надо просто разобраться что это за жесть икая 

 

COUNT(`product_id`) AS rating FROM oc_order_product WHERE order_id IN(SELECT op.`order_id` FROM (SELECT *,COUNT(`order_product_id`) AS totalpr

 

 

28.07.2022 в 17:19, markimax сказал:

Насколько пам'яию є икє "діло" у Ch0oJoy

Я тоже грішу на "рекомєндуємиє"

Есть модуль на сайте "Товары в ибах" и в нем можно выбрать товары категории (по кол. продаж или по просмотрам и тд). Раньше стояло по кол. продаж, но после изменения на кол. просмотров, сайт сил намного лучше грузится. Но как видно с панели хостинга медленные запросы все равно осились. 

 

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

 

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


28.07.2022 в 17:29, Ch0oJoy сказал:

Есть модуль на сайте "Товары в ибах"

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

  • +1 1
Ссылка на комменирий
Погделиться на других сайих

28.07.2022 в 16:29, Ch0oJoy сказал:

После того как заблокировал потому чтотов,

Поисковых? Ненужно.

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

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккауни. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите згдесь.

Войти сейчас
 Погделиться

×
×
  • Создать...

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

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