Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

слишком много запросов к БД


 Поделиться

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

Интернет - магазин на OC 2.3.0.2.3  damianis.ru

стал потреблять слишком много ресурсов, ниже инфо от хостера :

вероятно, что ситуация напрямую связана с mysql-запросами вида:

SELECT SQL_CALC_FOUND_ROWS p.* ,pd.* , NULL AS special ,p.`stock_status_id` AS stock_status , p.`price` AS price_sort ,NULL AS rating,NULL AS reviews ,m.`name` AS manufacturer, m.`image` AS image_manufacturer FROM `oc_product` p LEFT JOIN `oc_product_description` pd ON (p.`product_id` = pd.`product_id`) LEFT JOIN `oc_manufacturer` m ON (p.`manufacturer_id` = m.`manufacturer_id`) JOIN `oc_product_to_category` p2c ON (p.`product_id` = p2c.`product_id`) JOIN `oc_attribute_filter_vier` afv ON (p.`product_id` = afv.`product_id`) WHERE p2c.`category_id` = 765572703 AND afv.`attr_text` IN ('1328061955_23') AND afv.`product_id` IN (SELECT afv.`product_id` FROM `oc_attribute_filter_vier` afv WHERE afv.`attr_text` IN ('1509027247_8','1509027247_9') ) AND afv.`product_id` IN (SELECT afv.`product_id` FROM `oc_attribute_filter_vier` afv WHERE afv.`attr_text` IN ('1869585774_51') ) AND p.`status` = 1 AND pd.`language_id` = 1 GROUP BY p.`product_id` ORDER BY (p.`qua
 ntity` > 0) DESC, p.quantity DESC LIMIT 0,40

которые копятся в очереди на выполнение.

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


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

NULL AS special

Это шо за дурь? Нафига искать ничего?

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

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

Это шо за дурь? Нафига искать ничего?

так вы видите сейчас итоговый запрос

 

нужно исходник смотреть

возможно у автора воткнуто условие, что когда например нет запроса цены акции - вместо нее и выдает NULL

т.е. запрос формируется в зависимости от входных параметров в целях экономии

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

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

так вы видите сейчас итоговый запрос

 

нужно исходник смотреть

возможно у автора воткнуто условие, что когда например нет запроса цены акции - вместо нее и выдает NULL

т.е. запрос формируется в зависимости от входных параметров в целях экономии

Я понял, но как раз и тут идет нагрузка на БД. Зачем NULL AS rating если можно просто pd.rating AS rate (учите инглиш!) - вернет пустое значение. А вот эти нулл как раз и грузят БД. NULL AS rating не указывает на поле в БД, в отличие от pd.*, поэтому сервер долго отдупляется.

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

@esculapra Не выдумывайте

Запрос в этой части нормальный и оптимизирован

потому как , он должен вернуть то что возвращает стандартный запрос getProducts

Если нет фильтра по цене, и нет фильтра по рейтингу

 

 

 

 

 

А вот дальше конечно же бред

afv.`attr_text` IN ('1509027247_8','1509027247_9') ) AND afv.`product_id` IN (SELECT afv.`product_id` FROM `oc_attribute_filter_vier` afv WHERE afv.`attr_text` IN ('1869585774_51') )

 

Когда єтовсе можно объеденить

но авто фильтра считает что запрос оптимизирован @vier, Да? И что там нечего оптимизировать (по крайней мере так я прочитал цитата из переписки ТС и автора фильтра) код модуля закрыт, автор считает не нужным его открывать

 

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

Проблема в модуле фильтров, точнее в его не оптимизированной структуре хранения данных. Код модуля зашифрован,  а автор фильтра в это не верит, и какой у меня выход?

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


Автор фильтра может думает я его бесплатно прошу о помощи, а какую сумму справедливо было бы ему предложить за решение данной проблемы? 

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


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

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

Логично было б ему бесплатно это исправить, ведь он затем обновит модуль и будет дальше продавать

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


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

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


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

понял что с сайтом все плохо и касаться более не хочет.

Не мотивируя  чем плохо?

И касаться чего он не хочет? Своего фильтра?

Проблемный запрос ему показан, никто, кроме него такой запрос не формирует.

 

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

и теоретически во сколько мне обойдется "всех за все простить" купить новый фильтр + настройка и тп

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


а все работы, которые автор фильтра выполнил, ссылки из фильтра  - это все тоже будет утрачено? с нуля по второму кругу??

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


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

ничего не меняется. годы идут, а авторы как шифровали говнокод так и продолжают шифровать.

Увы, понять, простить и купить другой модуль фильтра

Условно, там не есть гавнокод, но оптимизировать такой код можно
Но только в том месте , где он формируется (но он закрыть), а сказать что у вас гавно сайт а мой фильтр хороший - это сверх наглость. а у человека уде весь функционал завязан на этот фильтр

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

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

Условно, там не есть гавнокод, но оптимизировать такой код можно

можно.

спасибо, за то, что обратили на этот код. (с какой-то версии он не правильно стал формироваться в цикле)

23 часа назад, chukcha сказал:

afv.`attr_text` IN ('1509027247_8','1509027247_9') ) AND afv.`product_id` IN (SELECT afv.`product_id` FROM `oc_attribute_filter_vier` afv WHERE afv.`attr_text` IN ('1869585774_51') )

уже работаю над этим.

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

Вот ещё ошибки новые, 02-Dec-2019 14:26:01 Europe/Moscow] PHP Fatal error: Uncaught exception 'Exception' with message 'Error: Server shutdown in progress<br />Error No: 1053<br />SELECT afv.`attr_text`, COUNT(afv.`attr_text`) AS t[...]
[02-Dec-2019 14:26:04 Europe/Moscow] PHP Warning: mysqli::mysqli(): (HY000/2002): No such file or directory in /home/c11589/damianis.ru/www/system/library/db/mysqli.php on line 7
[02-Dec-2019 14:26:04Europe/Moscow] PHP Warning: DB\MySQLi::__construct(): Couldn't fetch mysqli in /home/c11589/damianis.ru/www/system/library/db/mysqli.php on line 10
[02-Dec-2019 14:26:04 Europe/Moscow] PHP Warning: DB\MySQLi::__construct(): Couldn't fetch mysqli in/home/c11589/damianis.ru/www/system/library/db/mysqli.php on line 10
[02-Dec-2019 14:26:04 Europe/Moscow] PHP Fatal error: Uncaught exception 'Exception' withmessage 'Error: <br />Error No: ' in /home/c11589/damianis.ru/www/system/library/db/mysqli.php:10

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


Это все туда к @vier

 

 

Может мало места, может памяти
На самом деле все что с  afv  - это к автору фильтра

зы.. У вас нормальная структура, не гавно стркутура, есть на порядок хуже
Но вы уже завязались на этот фильтр

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

17 часов назад, vier сказал:

можно.

спасибо, за то, что обратили на этот код. (с какой-то версии он не правильно стал формироваться в цикле)

уже работаю над этим.

Виталий, сообщите пожалуйста возможно ли довести до ума фильтр, в данный момент изменений не наблюдаю. 

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


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

Виталий, сообщите пожалуйста возможно ли довести до ума фильтр, в данный момент изменений не наблюдаю. 

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

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

 

но сайт Ваш все равно надо делать, и лучше с нуля, и использовать модули, а не самописные коды. (я же Вам говорил в скайпе, что мне жалко Ваших денег на "подмазку кода". найдите хорошего исполнителя и все будет ГУД). 60тыс.товара это не смертельно. я показывал Вам примеры, где и при 300тыс. товара и немерено атрибутов, сайт чувствует себя хорошо.

исполнителя надо искать на таких же специализированных форумах, а не по "шарашкиным конторам".

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

18 часов назад, vier сказал:

можно.

спасибо, за то, что обратили на этот код. (с какой-то версии он не правильно стал формироваться в цикле)

уже работаю над этим.

Виталий, сообщите пожалуйста возмож

 

2 минуты назад, vier сказал:

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

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

 

но сайт Ваш все равно надо делать, и лучше с нуля, и использовать модули, а не самописные коды. (я же Вам говорил в скайпе, что мне жалко Ваших денег на "подмазку кода". найдите хорошего исполнителя и все будет ГУД). 60тыс.товара это не смертельно. я показывал Вам примеры, где и при 300тыс. товара и немерено атрибутов, сайт чувствует себя хорошо.

исполнителя надо искать на таких же специализированных форумах, а не по "шарашкиным конторам".

Если есть желающие поработать над моим ИМ - пишите в личку, ГЕНИЙ, отзовись!

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


Буду рада любым рекомендациям! 

p.s. исполнитель, про которого Вы мне писали (у которого много хороших отзывов) уже 4 дня не отвечает, видимо проблемные сайты никого не интересуют)

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


В 03.12.2019 в 14:18, vier сказал:

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

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

 

но сайт Ваш все равно надо делать, и лучше с нуля, и использовать модули, а не самописные коды. (я же Вам говорил в скайпе, что мне жалко Ваших денег на "подмазку кода". найдите хорошего исполнителя и все будет ГУД). 60тыс.товара это не смертельно. я показывал Вам примеры, где и при 300тыс. товара и немерено атрибутов, сайт чувствует себя хорошо.

исполнителя надо искать на таких же специализированных форумах, а не по "шарашкиным конторам".

Я нашла специалиста по БД, он работает, НО ЗАПРОСЫ ОТ ФИЛЬТРА ТАК И копятся в очередь, Вы сможете это устранить? 

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


В 02.12.2019 в 14:37, Anna23023 сказал:

а автор фильтра в это не верит, и какой у меня выход?

 

использовать другой фильтр.

разве не вариант?

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

TL;DR> больше всех оказались виноваты рукожопы специалисты которые исполняли в парсинг некоторое время назад; модуль фильтра от @vier особо ни причем и просто оказался крайним

 

On 12/1/2019 at 4:54 PM, Anna23023 said:

WHERE p2c.`category_id` = 765572703

 

On 12/3/2019 at 4:18 PM, vier said:

60тыс.товара

сначала думаешь, что 60.000 товаров и id-шник категории 765572703 нелепо смотрятся вместе на одном магазине.

потом узнаешь, что крайнее значение product_id в магазине что-то вроде 2147491496.

затем тормозные без видимых причин запросы, связанные с фильтром, перестают вызывать удивление, ведь приходит понимание, что счётчик и id-шники товаров уже немножко больше чем диапазон типа данных int(11), который из коробки был определен для каждой продуктовой таблицы или как-то связанных с ней через product_id.

 

по факту, основной причиной медленной работы был оверхед на приведение типов данных при джоине таблиц фильтра, которые каноничные int(11), с таблицами товаров\категорий\итп магазина, которые умельцы расширили до bigint(22). К слову, и то не везде расширили, а скорее всего только там, где ругался парсер, а на остальное забили... в общем, фильтру внезапно посыпались все шишки, а его запросы во всех слоу-статистиках незаслуженно возглавили топы. Просто за то что он в этой базе оказался самым "обычным"

 

да, был еще небольшой букет в виде супер-модулей (типа такого; который стабильно генерирует кудрявый sql с невменяемым временем выполнения при значимом количестве товаров), отсутствия минимального кэширования основных элементов и чего-то там еще. Что бы лучше представить картинку в целом и до чего может довести парсинг от умельцев (не с форума, кстати), стоит заценить спойлер.

Spoiler

хостер херни не скажет!

 

image.png

 

image.png.38185ebf6c25715a0202fa485c0f2331.png

В общем, работы еще много. И магазину нужна помощь от толковых ребят.

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

 

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

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

и просто оказался крайним

Но! Всплыла его ошибка, при его запросах

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

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

3 часа назад, chukcha сказал:

Но изначально @vier он сказал, что ку него все идеально, и просто отказался смотреть

не говорил, что и идеальный - ничего нет идеального.

и смотрел, и предложил найти специалиста.

и хорошо, что нашла @100napb

 

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

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

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

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

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

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

Войти

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

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

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...

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

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