|
Модераторы: skyboy |
|
maxipub |
|
||||
Опытный Профиль Группа: Участник Сообщений: 517 Регистрация: 22.10.2009 Репутация: 1 Всего: 1 |
Здравствуйте.
Правильно ли я понимаю, что данные два запроса будут равнозначными:
? |
||||
|
|||||
Akina |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 453 |
И да, и нет. Результат будет одинаковый, а планы выполнения (и соответственно время и использованные ресурсы) - разные.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
maxipub |
|
|||
Опытный Профиль Группа: Участник Сообщений: 517 Регистрация: 22.10.2009 Репутация: 1 Всего: 1 |
Akina, насколько я знаю:
1) джойны обрабатываются в той же последовательности, в которой указываются в запросе; 2) сначала рекомендуют ставить легкие таблицы, тяжелые - в конец. Это верно? А собственно сам вопрос, состоял как раз в результате. Т.е. LEFT и INNER JOIN-ы можно как угодно менять местами (ну понятно, что t5 не ставить на место t1 в примере, это уже банально будет не LEFT), на результат это ни как не повлияет? |
|||
|
||||
eclipsle88 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 19.7.2018 Репутация: нет Всего: нет |
Не, результат может и не совпасть, т.к. там левое соединение - заполняет сначала левую, потом правую и нулями дополняет. А если в самом начале сделать лефт, то оно и потянет все эти нули вниз за собой, надеюсь понел
|
|||
|
||||
Akina |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 453 |
Не "джойны обрабатываются", а "таблицы сканируются". И только при условии наличия хотя бы одного стороннего (LEFT/RIGHT) связывания - если все связывания внутренние (INNER), оптимизатор сам решает, в каком порядке сканировать таблицы (однако можно дополнительной инструкцией STRAIGHT_JOIN запретить ему эту самодеятельность). Нет. В начало следует помещать наиболее селективные таблицы. Т.е. те, для которых условие связывания и/или отбора оставляет минимальное количество промежуточных наборов данных. И далеко не всегда это самые маленькие таблицы. Бред сивой кобылы. Это "добавление нулей" (на самом деле NULL) определяется ТОЛЬКО условиями связывания и никак не зависит от порядка. Не веришь? Попробуй создать пример, когда изменение порядка таблиц без изменения условий связывания изменит результат выборки... когда надоест - скажешь. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | MySQL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |