Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

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


Recommended Posts

Добрый день!

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

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

 

Link to post
Share on other sites

44 минуты назад, MayanMan сказал:

в среде

попробуйте еще в четверг. может быть станет понятнее.

 

Link to post
Share on other sites

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


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

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

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

 

Link to post
Share on other sites
  • 4 months later...

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

Link to post
Share on other sites

Только что, AntonMuxa сказал:

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

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

Link to post
Share on other sites
2 hours ago, snastik said:

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

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

Link to post
Share on other sites

боже что вы просите то. Вы даже запрос целиком не привели, не говоря уже про статистику запроса

Link to post
Share on other sites
22 минуты назад, AntonMuxa сказал:

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

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

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

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

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

Link to post
Share on other sites
1 час назад, AntonMuxa сказал:

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

 

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

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

 

 

Link to post
Share on other sites
54 минуты назад, freelancer сказал:

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

 

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

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

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

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

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

 

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

 

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

 

 

Link to post
Share on other sites
28 минут назад, snastik сказал:

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

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


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

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

Link to post
Share on other sites
4 часа назад, snastik сказал:

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

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

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

 

Link to post
Share on other sites
12 минут назад, chukcha сказал:

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

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

 

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

 

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

Link to post
Share on other sites
5 минут назад, snastik сказал:

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

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

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

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

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

 

Link to post
Share on other sites
1 минуту назад, chukcha сказал:

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

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

 

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

Link to post
Share on other sites
20 hours ago, Wild said:

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

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

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

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

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

Link to post
Share on other sites

  • 1 month later...
On 4/20/2018 at 5:00 PM, Wild said:

Версия OC?

OpenCart 2.3.0.2.3

Link to post
Share on other sites

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

Link to post
Share on other sites
  • 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

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.