Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
Страницы: (3) [1] 2 3  ( Перейти к первому непрочитанному сообщению )  
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> JOIN vs массивы с циклами
Zzepish  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 5583
Пользователь №: 32538
На форуме: 5 лет, 2 месяца, 1 день
Карма: 56




Вот тимлид заставаляет, если у нас всего 2-4 таблицы, делать через 2-4 запрос и разбирать на уровне php. Я хз - правильно ли это (не замерял). У кого есть какие мысли на эту тему?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
T1grOK  
Дата
Цитировать сообщение

Пользователь сейчас на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2792
Пользователь №: 24406
На форуме: 6 лет, 9 месяцев, 11 дней
Карма: 180




Зависит от ситуации.


--------------------
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Zzepish  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 5583
Пользователь №: 32538
На форуме: 5 лет, 2 месяца, 1 день
Карма: 56




T1grOK
Всегда. Мотивирует это тем, что JOIN сильно замедляет работу запроса
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



c начала 2017 года в Новосибирске.
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 26448
Пользователь №: 21350
На форуме: 7 лет, 4 месяца, 13 дней
Карма: 739




купите ему оперативки.


--------------------
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql (TSql, BI OLAP, MDX), Git, SVN, CodeIgnater, Yii 2, JiRA, Redmine, Bitbucket, Composer
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Another Reality  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Абориген
*****

Профиль
Группа: Пользователь
Сообщений: 215
Пользователь №: 41606
На форуме: 2 года, 11 дней
Карма: 7




Странно, я думаю что несколько запросов отработают медленнее чем один с JOIN.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
twin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Глухой нуб
******

Профиль
Группа: Администратор
Почтальон группы
Сообщений: 16116
Пользователь №: 6543
На форуме: 8 лет, 9 месяцев, 24 дня
Карма: 304

Трезвый :
6 лет, 7 месяцев, 3 дня


Цитата (Zzepish @ 2.09.2016 - 06:11)
Мотивирует это тем, что JOIN сильно замедляет работу запроса

Он не прав. Это паранойя. JOIN и действительно тормозит, но чтобы это почувствовать, нужны очень большие объемы данных.

Если таблицы измеряются гигабайтами, и посещаемость достаточно высокая, то тогда можно заморочиться. Мне приходилось эмулировать JOIN на PHP.


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

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

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

user posted image
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Arh  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



146%
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2381
Пользователь №: 27172
На форуме: 6 лет, 3 месяца, 25 дней
Карма: 76




Только что сделал тест

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+


--------------------
:)
PMСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
twin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Глухой нуб
******

Профиль
Группа: Администратор
Почтальон группы
Сообщений: 16116
Пользователь №: 6543
На форуме: 8 лет, 9 месяцев, 24 дня
Карма: 304

Трезвый :
6 лет, 7 месяцев, 3 дня


Another Reality
Arh
Вы не учитываете очередь. При высоких нагрузках именно это важно, а не суммарная скорость. Кроме того, при увеличении объема данных, время исполнения увеличивается не линейно.


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

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

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

user posted image
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Arh  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



146%
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2381
Пользователь №: 27172
На форуме: 6 лет, 3 месяца, 25 дней
Карма: 76




Второй раз потестил без лимитов, получилось еще интересней.
Таблицы по 100 и 30 мб

Запрос на ту что 100 мб показал 0,094 сек
Запрос на ту что 30 мб показал 0,063 сек

А JOIN на обе показал 0.093 =)


--------------------
:)
PMСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Arh  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



146%
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2381
Пользователь №: 27172
На форуме: 6 лет, 3 месяца, 25 дней
Карма: 76




Очередь хз, посещаемость под 2 ляма в день.
Правда кэш.


--------------------
:)
PMСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
twin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Глухой нуб
******

Профиль
Группа: Администратор
Почтальон группы
Сообщений: 16116
Пользователь №: 6543
На форуме: 8 лет, 9 месяцев, 24 дня
Карма: 304

Трезвый :
6 лет, 7 месяцев, 3 дня


Arh
Условия добавь.


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

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

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

user posted image
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Another Reality  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Абориген
*****

Профиль
Группа: Пользователь
Сообщений: 215
Пользователь №: 41606
На форуме: 2 года, 11 дней
Карма: 7




Надо хорошенько разобраться с внутренним устройством MySQL, для нормального понимания этого дела.
Посоветйте какую-то книгу хорошую.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Arh  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



146%
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2381
Пользователь №: 27172
На форуме: 6 лет, 3 месяца, 25 дней
Карма: 76




Добавил WHERE t1.`id` > 1000 AND t1.`id` < 999999
Ничего толком не изменилось.
Точнее просто 1 SELECT отработал за (от 0,076 до 0.093), а с JOIN за 0.078.
Тут погрешность превышает разницу, ибо её почти нет.
А если сложить время двух запросов + скорость соединения с bd, что тоже часто довольно много времени требует, умножить эту скорость на 2, потому что 2 запроса + скорость цикла, а то и нескольких, будет в 5 раз медленней =)


--------------------
:)
PMСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
inpost  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Помагите Здесь живу!!!
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 22932
Пользователь №: 20039
На форуме: 7 лет, 7 месяцев, 20 дней
Карма: 608




Another Reality Arh
JOIN даст ниже результаты при более высокий объемах работы и дополнительных тяжелых условиях выборки. Такое поведение было в 5.5, может к 5.7 внесли кое-какие правки.

Zzepish
Если это простые сайты, то он "типичный программист" ph34r.gif


--------------------
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Zzepish  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 5583
Пользователь №: 32538
На форуме: 5 лет, 2 месяца, 1 день
Карма: 56




inpost
Не совсем простые. Агрегаторы магазинов, со всей магазинной системой, аукционами и прочей лабудой. И в подобном стиле
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темыСтраницы: (3) [1] 2 3  Ответ в темуСоздание новой темыСоздание опроса