Zzepish
2.09.2016 - 09:48
Вот тимлид заставаляет, если у нас всего 2-4 таблицы, делать через 2-4 запрос и разбирать на уровне php. Я хз - правильно ли это (не замерял). У кого есть какие мысли на эту тему?
Зависит от ситуации.
_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
Zzepish
2.09.2016 - 10:11
T1grOK
Всегда. Мотивирует это тем, что JOIN сильно замедляет работу запроса
Игорь_Vasinsky
2.09.2016 - 10:19
купите ему оперативки.
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Another Reality
2.09.2016 - 10:19
Странно, я думаю что несколько запросов отработают медленнее чем один с JOIN.
Цитата (Zzepish @ 2.09.2016 - 06:11) |
Мотивирует это тем, что JOIN сильно замедляет работу запроса |
Он не прав. Это паранойя. JOIN и действительно тормозит, но чтобы это почувствовать, нужны очень большие объемы данных.
Если таблицы измеряются гигабайтами, и посещаемость достаточно высокая, то тогда можно заморочиться. Мне приходилось эмулировать JOIN на PHP.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Только что сделал тест
0.062 секSELECT * FROM table1 as t1
LEFT JOIN table2 as n ON t2.`id` = t1.`id`
LIMIT 100
0.031 сек
SELECT * FROM table1 LIMIT 100
0.032 сек
SELECT * FROM table2 LIMIT 100
+ скорость цикла =
0.063+
_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Another RealityArhВы не учитываете очередь. При высоких нагрузках именно это важно, а не суммарная скорость. Кроме того, при увеличении объема данных, время исполнения увеличивается не линейно.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Второй раз потестил без лимитов, получилось еще интересней.
Таблицы по 100 и 30 мб
Запрос на ту что 100 мб показал 0,094 сек
Запрос на ту что 30 мб показал 0,063 сек
А JOIN на обе показал 0.093 =)
_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Очередь хз, посещаемость под 2 ляма в день.
Правда кэш.
_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
ArhУсловия добавь.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Another Reality
2.09.2016 - 10:42
Надо хорошенько разобраться с внутренним устройством MySQL, для нормального понимания этого дела.
Посоветйте какую-то книгу хорошую.
Добавил WHERE t1.`id` > 1000 AND t1.`id` < 999999
Ничего толком не изменилось.
Точнее просто 1 SELECT отработал за (от 0,076 до 0.093), а с JOIN за 0.078.
Тут погрешность превышает разницу, ибо её почти нет.
А если сложить время двух запросов + скорость соединения с bd, что тоже часто довольно много времени требует, умножить эту скорость на 2, потому что 2 запроса + скорость цикла, а то и нескольких, будет в 5 раз медленней =)
_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Another Reality ArhJOIN даст ниже результаты при более высокий объемах работы и дополнительных тяжелых условиях выборки. Такое поведение было в 5.5, может к 5.7 внесли кое-какие правки.
ZzepishЕсли это простые сайты, то он "типичный программист"
_____________
Обучаю веб-программированию качественно и не дорого:
http://school-php.comФрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Zzepish
2.09.2016 - 11:29
inpost
Не совсем простые. Агрегаторы магазинов, со всей магазинной системой, аукционами и прочей лабудой. И в подобном стиле
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.