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

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


MayanMan

Recommended Posts

Добрый день!

Столкнулся с извечной проблемой - медленные запросы MySQL, установил дополнение "лог медленных запросов" и ужаснулся - некоторые зи них занимают до 10сек, самый распростроненный "SELECT DISTINCT *, pd.name AS name, p.image...Время выполнения: 1003.34мс

Однако! Когда я выполняю его в среде администрирования БД, результат великолепен: Запрос занял 0.0016 сек.

 

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


Была похожая проблема.


Обратите внимание на количество таких запросов.
У меня применялся шаблон, в котором модуль категорий в виде бокового меню строился нестандартно (Родительская категория -> Дочерняя -> Производители).
И для получения списка производителей, товары которых присутствуют в дочерней категории, использовались штатные методы, причем весьма не рационально.
В результате в цикле опрашивались все товары из категории.
Когда их было немного, то особых проблем не возникало, но когда их стало около 5000, то такое же количество запросов при построении меню начало загонять сайт в ступор.

Пришлось заменить этот глупый цикл на один единственный запрос и сайт зашевелился.

Для отладки запросов рекомендую Debug database queries, очень хорошая бесплатная штука!
Выводит все запросы на фронте и бэкэнде с возможностью сортировки по времени или порядку выполнения.
Можно выводить на экран и в лог файл.

 

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

  • 4 months later...
Только что, AntonMuxa сказал:

Нашли решение вопроса? у меня такая же проблема

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

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

2 hours ago, snastik said:

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

А если нет возможности настроить сервер ибо использую хостинг а не выделенный сервер. Индексы добавлял. А вот переписать запрос не подскажите хоть пример как он может выглядеть? ну или где почитать ? почему то думал что если opencart то у него должны быть адаптированы запросы - все таки там команда все дела

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


22 минуты назад, AntonMuxa сказал:

А если нет возможности настроить сервер ибо использую хостинг а не выделенный сервер. Индексы добавлял. А вот переписать запрос не подскажите хоть пример как он может выглядеть? ну или где почитать ? почему то думал что если opencart то у него должны быть адаптированы запросы - все таки там команда все дела

Поставьте модуль, на который я дал ссылку в своем посте.

Посмотрите какие запросы выполняются дольше всего.
Может их очень большое количество.

Отсюда можно плясать.

А так...
Иголка в стоге сена.

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

1 час назад, AntonMuxa сказал:

А если нет возможности настроить сервер ибо использую хостинг а не выделенный сервер. Индексы добавлял. А вот переписать запрос не подскажите хоть пример как он может выглядеть? ну или где почитать ? почему то думал что если opencart то у него должны быть адаптированы запросы - все таки там команда все дела

 

Команда и унификация процессов - это не совсем совместимые вещи.
Индексы добавлял - это приблизтельно как. Сыграй мурку. А у меня не получается. Но я по клавишам нажимал на пианино.

Со всем уважением. Но ответ на ваш вопрос - как переписать запрос, из того же разряда, как сделать операцию на открытом сердце, краткая инструкция для стоматологов, как сделать капитальный ремонт двигателя mazeratti, у меня для этого все есть: гаечный ключ и молоток.

 

 

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

54 минуты назад, freelancer сказал:

без полного текста запроса сложно судить

 

41 минуту назад, Wild сказал:

Поставьте модуль, на который я дал ссылку в своем посте.

Посмотрите какие запросы выполняются дольше всего.
Может их очень большое количество.

Отсюда можно плясать.

А так...
Иголка в стоге сена.

 

Учимся пользоваться поиском, товарищи, не стесняемся!

 

https://github.com/opencart/opencart/search?utf8=✓&q=SELECT+DISTINCT+*%2C+pd.name+AS+name%2C+p.image&type=

 

 

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

28 минут назад, snastik сказал:

Учимся пользоваться поиском, товарищи, не стесняемся!

https://github.com/opencart/opencart/search?utf8=✓&q=SELECT+DISTINCT+*%2C+pd.name+AS+name%2C+p.image&type=


И?
Не факт, что у человека именно проблема с этим.
Билли, нам нужна КАРТА!
MayanManДай лог времени и количества запросов!

UPD: Че-то я лоханулся понадеявшись на свою память и не прочитав стартовый топик.

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

4 часа назад, snastik сказал:

Запрос приведенный ТС - это запрос выборки товаров в каталоге в админке

В каталоге в админке - т.е модель каталог админкм?

Не увидев полного запроса - сделать вывод о нехватке индексов - шикарно..

 

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

12 минут назад, chukcha сказал:

В каталоге в админке - т.е модель каталог админкм?

Не увидев полного запроса - сделать вывод о нехватке индексов - шикарно..

 

Ну я же показал ссыль на гитхаб откуда ноги растут.
Там реально не хватает индексов.
Но запрос вида select *.... и индексы.. ну уже простите. Выше я достаточно внятно описал методологию решения вопроса.

 

UPD....
И еще: в данном случае о каких индексах может идти речь, если это дешевый шаред, с зажатыми sort_buffer и key_buffer.

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

5 минут назад, snastik сказал:

Ну я же показал ссыль на гитхаб откуда ноги растут.

откуда запрос, я знаю и не нужно ссылки на гитхаб

ОТВЕТ был утверждающий
 

5 часов назад, snastik сказал:

Запрос приведенный ТС - это запрос выборки товаров в каталоге в админке

 

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

1 минуту назад, chukcha сказал:

откуда запрос, я знаю и не нужно ссылки на гитхаб

ОТВЕТ был утверждающий
 

 

Вы меня пугаете в последнее время нашим консенсусом!
Слава богу хоть кто-то знает. А не 3тр!!!

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

20 hours ago, Wild said:

Поставьте модуль, на который я дал ссылку в своем посте.

Посмотрите какие запросы выполняются дольше всего.
Может их очень большое количество.

Отсюда можно плясать.

А так...
Иголка в стоге сена.

я ставил ваш модуль и у меня валились ошибки. Undefined offset 1 на этой строке $result = $this->database->query($text_sql, $params[1]);

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


  • 1 month later...

Странно...
На странице расширения написано что поддерживаются версии вплоть до 3.
Но с этой проблемой скорее к автору модификации.
Попробуйте написать ему в комменты.

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

  • 2 years later...
В 24.05.2018 в 10:23, AntonMuxa сказал:

OpenCart 2.3.0.2.3

 

В 20.04.2018 в 16:38, AntonMuxa сказал:

я ставил ваш модуль и у меня валились ошибки. Undefined offset 1 на этой строке $result = $this->database->query($text_sql, $params[1]);

Нужно подправить код

Заменить эту часть кода

                if (!$this->hasTwoArguments) {
                    $result = $this->database->query($text_sql);
                } else {
                    // if there are two arguments the second is an array of query params
                    $result = $this->database->query($text_sql, $params[1]);
                }

на этот

        if (isset($params[1])) {
            $result = $this->database->query($text_sql, $params[1]);
        } else {
            $result = $this->database->query($text_sql);
        }

 

Либо скачайте подправленный модуль для Opencart v2.3.x

 

debug_db_queries.ocmod.xml

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


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

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

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

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

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

Вхід

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

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

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

Important Information

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