Как отследить источник запросов к SQL

Sly32
На сайте с 29.03.2012
Offline
303
#11
Kaavain #:
Вопрос был зачем SELECT id когда id - известно и торчит там же: WHERE id= ???

Ну проанализируй что дальше происходит. Возможно айдишник потом используется для получения других данных. Это как раз правильно - не получать всю таблицу с SELECT * FROM а сделать выборку столбцов. Другой вопрос - почему  не заджойнить нужное в таком случае. Но это все гадание на  кофейной гуще - нужно анализировать все. 

НО в обьом случае дал простого сайта это перебор. Но может там у тебя там магазин с товарами у которых сотни параметров...

Kaavain
На сайте с 28.07.2015
Offline
133
#12
Sly32 #:

Ну проанализируй что дальше происходит. Возможно айдишник потом используется для получения других данных. Это как раз правильно - не получать всю таблицу с SELECT * FROM а сделать выборку столбцов. Другой вопрос - почему  не заджойнить нужное в таком случае. Но это все гадание на  кофейной гуще - нужно анализировать все. 

НО в обьом случае дал простого сайта это перебор. Но может там у тебя там магазин с товарами у которых сотни параметров...

Магазин порядка 7000 товаров, параметров не много, но не просто артикул-цена.

Могу порекомендовать только хостинг: https://traf.at/vps - за 3 года все на 4++ и цены не подняли. Ну и банк для белых ИП: https://traf.at/bankm
Snake800
На сайте с 02.02.2011
Offline
215
#13
Kaavain #:
Не?

Не. Да, часто есть смысл разбивать сложный запрос на несколько, но 1150 sql запросов на страницу это оверхед. Если уж очень нужно кидать запрос на получение иерархии предков для каждого выводимого элемента например, стоит посмотреть в сторону рекурсивных запросов CTE. А вообще такие объекты как правило кэшируются в виде связанных списков. Или решается одним или небольшой группой запросов, в зависимости от рабочих задач и природы данных.

Sly32
На сайте с 29.03.2012
Offline
303
#14
Kaavain #:
Магазин порядка 7000 товаров, параметров не много, но не просто артикул-цена.

тут дело не в количестве даже а в вариациях

Kaavain
На сайте с 28.07.2015
Offline
133
#15

Короче - мое предположение оказалось верным. За каким-то хреном PHPmyAdmin 4.0 считает не так как 5.2

Взял и забросил им одинаковое:

SELECT s1.variable_value / s2.variable_value
FROM information_schema.global_status s1, information_schema.global_status s2
WHERE s1.variable_name='queries'
AND s2.variable_name ='uptime';

И что бы вы думали? В обоих случаях получил примерно одинаковые 400 в секунду плюс-минус!

Вот гады.

Aisamiery
На сайте с 12.04.2015
Offline
293
#16

У меня есть маленький магазинчик в клиентах на битриксе, там сейчас смотрю порядка 1.5k селектов в секунду (не на страницу), но при этом там ~20 запросов в секунду к битриксу

Но с виду конечно кривовато, запросы в цикле как у вас больше времени тратят на транспорт данных между БД и приложением, проще уж как то выбирать большими партиями и в коде уже собирать, чем делать 1000 запросов отдельных, но там наверняка какой то WP скорее всего, а как я понимаю там людей не сильно беспокоит производительность, главное что на тачке разработчика работает быстро без нагрузки.

Разработка проектов на Symfony, Laravel, 1C-Bitrix, UMI.CMS, OctoberCMS
LEOnidUKG
На сайте с 25.11.2006
Offline
1723
#17
Aisamiery #:

Но с виду конечно кривовато, запросы в цикле как у вас больше времени тратят на транспорт данных между БД и приложением, проще уж как то выбирать большими партиями и в коде уже собирать, чем делать 1000 запросов отдельных, но там наверняка какой то WP скорее всего, а как я понимаю там людей не сильно беспокоит производительность, главное что на тачке разработчика работает быстро без нагрузки.

Да это классика просто. Тот же Opencart, вместо того, чтобы сразу выгрузить все товары для списка, выгружает сначала id товаров, а потом для каждого товара отдельный запрос мега-ужасный и большой с 5-10 JOIN. Я просто думаю, что все тестируют магазины и плагины, где-то на 1000 товарах, не больше. Загрузить 100 000 - 300 000 и протестировать? неее... нафиг надо. 

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/
Kaavain
На сайте с 28.07.2015
Offline
133
#18
Aisamiery #:
Но с виду конечно кривовато,

Коду 18 лет. Я уже лет 5-6 его сам пилю, но косметику. А структура - 18 лет. Многие из вас писались еще в штаны тогда :-) Ну ладо, мож не писались - но водку не пили точно.

W1
На сайте с 22.01.2021
Offline
285
#19
Kaavain #:
Вопрос был зачем SELECT id когда id - известно и торчит там же: WHERE id= ?

Понятно, зачем. Чтобы id попал в объект, который формируется в результате запроса.

Мой форум - https://webinfo.guru –Там я всегда на связи
Aisamiery
На сайте с 12.04.2015
Offline
293
#20
Kaavain #:

Коду 18 лет. Я уже лет 5-6 его сам пилю, но косметику. А структура - 18 лет. Многие из вас писались еще в штаны тогда :-) Ну ладо, мож не писались - но водку не пили точно.

Ну я уже где то 14 лет пишу код за который мне деньги платят, да не 18 конечно, но до этого я писал код (довольно долго) за который мне не платили денег =))) и да водку (самогон) я пил уже примерно 25 лет назад =))

Но в вашем случае проще переписать на самом деле, так сказать провести рефакторинг и запилить... кстати а что там за CMS из 2006? php nuke какой нибудь? Я уже и CMS то не помню какие были в те года, тогда еще яндекс perl разработчиков нанимал, а я кстати на нем писал =)))

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий