[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: JOIN vs массивы с циклами
Страницы: 1, 2, 3
twin
Цитата (Zzepish @ 2.09.2016 - 07:29)
Не совсем простые.

Дело не в простоте сайтов, а в интенсивности и сложности запросов.
У Arh запрос простой, тем более что он связал таблицы по первичному ключу. А если это будет "один ко многим", с большим объемом данных, да еще и со сложными условиями выборки, то картина изменится. А если джоинов несколько, то ваще труба дело.

Ну а если таблицы небольшие и условия не сложные, то фигня это всё. Опять же зависит от нагрузки. Одно дело три таких запроса в сутки, другое - несколько миллионов.

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

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
S.Chushkin
Цитата (Zzepish @ 2.09.2016 - 09:48)
Вот тимлид заставаляет, если у нас всего 2-4 таблицы, делать через 2-4 запрос и разбирать на уровне php. Я хз - правильно ли это (не замерял). У кого есть какие мысли на эту тему?

Для тебя не имеет значения, правильно или нет, - сказано, делай. С начальством спорить, что против ветра п...
И потихоньку про себя радуйся, что твоё начальство не умеет работать с БД. Ибо потом, когда оно научится (или придёт более умное), тебя заставят переделать по правильному. Тебе лафа: есть работа - есть зарплата. wink.gif

_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
S.Chushkin
Цитата (Arh @ 2.09.2016 - 10:25)
Только что сделал тест...

Сравнение корректно только при связи 1:1.
В остальных случаях, абсолютно бессмысленное, ибо JOIN совсем другое делает.

_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
Arh
S.Chushkin
Цитата
ибо JOIN совсем другое делает

Что делает JOIN?

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Zzepish
S.Chushkin
Цитата
Для тебя не имеет значения, правильно или нет, - сказано, делай. С начальством спорить, что против ветра п...

Потому так и живем. Ибо авторитаризм. Мне проще сменить работу, чем подчиняться идиоту!
Цитата
И потихоньку про себя радуйся, что твоё начальство не умеет работать с БД. Ибо потом, когда оно научится (или придёт более умное), тебя заставят переделать по правильному. Тебе лафа: есть работа - есть зарплата.

Ну, он умеет работать с бд. Чувак хорошо шарит. Но хз, чего так задрачивает.
S.Chushkin
Цитата (Zzepish @ 2.09.2016 - 19:34)
Чувак хорошо шарит.

Одно из двух, или не "шарит" или ты не точно передал его слова/приказ.

_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
Zzepish
S.Chushkin
точно звучит вот так: join медленнее, чем разобрать ряд массивов на пхп. Юзай массивы!
sergeiss
В теме было сказано много слов, но ни разу не прозвучали слова "индексы" и "EXPLAIN". Без этих слов вообще нечего обсуждать.
Если всё правильно настроить, то все джойны надо делать на уровне БД.

А тим-лиду задай вопрос: в ПХП что, по его мнению, разбор данных мгновенно делается или тоже время нужно на это? Интересно бы узнать его мнение по этому поводу smile.gif

Цитата (S.Chushkin @ 2.09.2016 - 19:53)
Одно из двух, или не "шарит" или ты не точно передал его слова/приказ.

Полностью согласен с этим утверждением.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Zzepish
sergeiss
Ну, как правило, архитектуру бд проектирует и саму бд делает он. Ключи расставляет. Грамотно выставляет поля и их параметры. Ну - это насколько я могу судить
sergeiss
Zzepish, а как насчет индексов и explain запросов? Без explain ты не поймешь, используются ли у тебя индексы.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Zzepish
sergeiss
индексы ставит. Explain я не пробовал!
sergeiss
Цитата (Zzepish @ 2.09.2016 - 23:21)
индексы ставит.

Кто "индексы ставит". Тот самый тим-лид? Ну так и вопрос мой как раз в том и состоит, что используются ли индексы. И насколько они эффективны для данного конкретного запроса. Может быть, там надо сделать сложный индекс (на 2 или больше поля одновременно)... Короче говоря, тут не так просто "поставил индексы" и они работают. Хренушки.

PS. Скорость выборки может зависеть даже от того, в каком порядке стоят поля в сложном индексе.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
S.Chushkin
Цитата (Zzepish @ 2.09.2016 - 20:07)
S.Chushkin
точно звучит вот так: join медленнее, чем разобрать ряд массивов на пхп. Юзай массивы!

"Каждый заблуждается в меру своих возможностей" (с) не мой smile.gif

Полный аналог JOIN на ПХП в большинстве случаев будет работать медленне.
Только на маленьких таблицах и очень простых условиях выборки может работать побыстрее. И вариант связи 1:1 также может работать побыстрее на не очень больших таблицах (сотни-тысячи записей, может десятки - не проверял).
В остальных случаях JOIN "сделает" ваш алгоритм.
Для справки: непосредственно отбор записей в mySQL (без индексов) идёт порядка 2 млн./сек. А если по индексам, - в ПХП может обогнать только прямой доступ к элементу массива.

В общем, для Знания прими за аксиому: в mySQL правильная выборка не медленнее, чем её эмуляция в ПХП в 99,9% случаев. В PG думаю также.
Хочешь верь, хочешь проверь...

_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
Zzepish
sergeiss
Цитата
Кто "индексы ставит". Тот самый тим-лид? Ну так и вопрос мой как раз в том и состоит, что используются ли индексы. И насколько они эффективны для данного конкретного запроса. Может быть, там надо сделать сложный индекс (на 2 или больше поля одновременно)... Короче говоря, тут не так просто "поставил индексы" и они работают. Хренушки.

PS. Скорость выборки может зависеть даже от того, в каком порядке стоят поля в сложном индексе.

Это я знаю. Я видел индексы, но сам не проверял работоспособность системы с индексами. Наскошлько я знаю - тут еще надо ровные запросы делать!
sergeiss
Zzepish, что ты имеешь ввиду под словами "ровные запросы"?

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.