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

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


Recommended Posts

Интернет - магазин на 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 минуту назад, 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 користувачів

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

Important Information

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