Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Оптимизая запросов к бд


Recommended Posts

Есть база которая стоит на выделенному сервере (характеристики сервера отличные), сайт очень долго грузиться из за запросов к бд, я поставил модуль который показывает все запросы к бд (1 фото), стоит модуль для seo чпу, и больше всего запросов идут к таблице oc_url_alias (фото 2), в которой прописаны урлы (32к запросов за 1 мин), как можно это оптимизировать либо убрать. Самый длинный запрос идет за удаления сессии в корзине, но проблема в том что все запросы в сессии отправляются за 0,0002с , а одна и та же сессия отправляет запрос за 20с, и так несколько раз (3 фото). Может кто-то уже сталкивался с этим, подскажите пожалуйста.   

image.png

image.png

image.png

Надіслати
Поділитися на інших сайтах


7 часов назад, VladLazarev сказал:

Есть база которая стоит на выделенному сервере (характеристики сервера отличные), сайт очень долго грузиться из за запросов к бд, я поставил модуль который показывает все запросы к бд (1 фото), стоит модуль для seo чпу, и больше всего запросов идут к таблице oc_url_alias (фото 2), в которой прописаны урлы (32к запросов за 1 мин), как можно это оптимизировать либо убрать. Самый длинный запрос идет за удаления сессии в корзине, но проблема в том что все запросы в сессии отправляются за 0,0002с , а одна и та же сессия отправляет запрос за 20с, и так несколько раз (3 фото). Может кто-то уже сталкивался с этим, подскажите пожалуйста.   

image.png

image.png

image.png

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

DELETE oc_cart_client.* FROM oc_cart_client LEFT JOIN oc_cart ON oc_cart_client.session_id = oc_cart.session_id WHERE oc_cart_client.customer_id = '0' AND oc_cart.session_id IS NULL

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

Надіслати
Поділитися на інших сайтах

А с какого перепугу медленный in()? Есть дока по этому?

2. На кой делать левое соединение, если оно нах там не нужно, ни одного значения не вытягиваем, но лепим - для таких целей (проверить вхождение) есть замечательная конструкция exists(). И вот она работает быстрее всякого гавна типа join (да еще и левых/правых)

Надіслати
Поділитися на інших сайтах


57 минут назад, hoolygan сказал:

А с какого перепугу медленный in()?

Меденее

 

не важно есть дока или нет

oc_cart_clienet - Это к авторам модуля забытых корзин (наверное)

 

59 минут назад, hoolygan сказал:

exists()

с подзапросом?

Вы уверены что это быстрее JOIN
тем более что этот LEFT вырождается  в INNER JOIN

Надіслати
Поділитися на інших сайтах

9 часов назад, VladLazarev сказал:

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

Я извиняюсь а что это за модуль такой ?

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.