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

Ускорение работы в админке


Recommended Posts

 После Вашей помощи, продолжил курить запросы.Так вот у меня при 100000 товарах вкладка товары открывается секунд 10 в админке, как будто миллиарды записей перетряхивает. Стал смотреть что тормозит. Первый тормоз getTotalProducts. Оказывается запрос по умолчанию он формирует такой

 

SELECT COUNT(DISTINCT p.product_id) AS total FROM oc_product p LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id) WHERE pd.language_id = '1' AND p.price LIKE '%'

 

и выполняется СЕКУНДУ. Убираем ненужный like и получаем в 20 раз быстрее.Оказывается в контроллере 

if (isset($this->request->get['filter_price'])) {
   $filter_price = $this->request->get['filter_price'];
} else {
   $filter_price = '';
}

меняем $filter_price=''' на = null

 

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

 

Что думаете?

Змінено користувачем PeletonTver
Надіслати
Поділитися на інших сайтах


Та не вопрос, можно вообще выводить только имя товара и не сортировать.

Вы лучше скажите к-во товаров в списке товаров? Еще могу предположить, что у вас хостинг общага где режут все что много.

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

В списке 100, сервер свой. Основной тормоз на данный момент это 

SELECT * FROM oc_product p LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id) WHERE pd.language_id = '1' GROUP BY p.product_id ORDER BY pd.name ASC LIMIT 0,100

а именно ORDER BY , убираю его и запрос  моментальный, а с ним до 15секунд. Надо что то ддумать.

 

а getTotalProducts и не в админке тормозил.

И на хрена в запросе Group By p.product_id если он и так уникальный?

Змінено користувачем PeletonTver
Надіслати
Поділитися на інших сайтах


7 минут назад, PeletonTver сказал:

В списке 100, сервер свой. Основной тормоз на данный момент это 

SELECT * FROM oc_product p LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id) WHERE pd.language_id = '1' GROUP BY p.product_id ORDER BY pd.name ASC LIMIT 0,100

а именно ORDER BY , убираю его и запрос  моментальный, а с ним до 15секунд. Надо что то ддумать.

 

а getTotalProducts и не в админке тормозил.

И на хрена в запросе Group By p.product_id если он и так уникальный?

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

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


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

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

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

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

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

Вхід

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

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

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