Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет mumuntu ([info]mumuntu)
@ 2011-07-20 04:36:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Я тут был на собеседовании (регулярно хожу, чаще, чем к врачу, это не значит, что я хочу работу сменить), и меня один коллега-джавадевелопер попросил решить известную задачу про две таблицы со связью между ними и все значения из первой таблицы, которые не имеют связи во второй таблице.
Когда я ему ответил, что надо сделать LEFT JOIN с WHERE <fk второй таблицы> IS NULL, он мне заявил, что это неоптимально, и предложил вариант с NOT EXISTS.

Дорогие коллеги-джавадевелоперы!
Если в вашей голове запрос с NOT EXISTS в плане выглядит оптимальнее, чем запрос с LEFT JOIN, крайне рекомендую синхронизировать ваше внутреннее представление с реальным планом запроса базы.
А еще лучше - не беритесь рассуждать о том, в чем не разбираетесь.
Что интересно, коллега мне еще сказал, что в случае с NOT EXISTS не нужен подзапрос (?). Я не знаю, как это трактовать, совсем вы офигели в своей джаве.

Upd.: в комментариях и в связанной записи коллеги [info]plumqqz@lj произошло интересное обсуждение, по результатам которого я пошел и нашел блогозапись коллеги Quassnoi, в которой изложена вся информация по теме LEFT JOIN vs NOT EXISTS применительно к MySQL.


(Читать комментарии) - (Добавить комментарий)


[info]alexclear@lj
2011-07-22 09:02 (ссылка)
Ну, кто звал, к тому и пошел.
А куда еще?
Все остальные отваливаются на этапе обсуждения зарплатной вилки.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]jdevelop@lj
2011-07-22 13:41 (ссылка)
то есть ты хочешь сказать, что ты озвучил вилку, тебе сказали "ок, говно вопрос" и позвали на интервью?

так не бывает

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]alexclear@lj
2011-07-22 13:44 (ссылка)
Не поел, почему не бывает?
Я всегда сразу называю вилку, чтобы время зря не терять.
Но по определенным причинам (известно, каким), с люксом это не совсем срабатывает.
Хотя весной они меня не позвали именно из-за вилки.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]jdevelop@lj
2011-07-22 13:45 (ссылка)
видать, тебе попался какой=то неправильный хр

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]alexclear@lj
2011-07-22 13:48 (ссылка)
Ну я фиг знает, а что должен был сделать правильный HR?
Кстати, никакого фидбэка по последнему собеседованию от них нет до сих пор, "чтоб они сгорели нахуй", как пишет в FrF коллега Корвалол.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]jdevelop@lj
2011-07-22 14:24 (ссылка)
Саш, это большой бодишоп с собстыенным бардаком внутри, так что забей

тем более что все равно ты там работать не собирался, даже за нужные тебе дегни

(Ответить) (Уровень выше)


(Анонимно)
2011-07-22 13:58 (ссылка)
Ну если желание не сменить работу, а потрещать о перспективах, то можно и не отваливаться на этапе обсуждения зп самому, нет?

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]alexclear@lj
2011-07-22 14:03 (ссылка)
А технологии обычно приходят в описании позиции - то есть, можно, конечно, их начать обсуждать на уровне технических лидов и так далее, но, если технологии уже выбраны, вряд ли их поменяют. Я этого наелся уже, в конце концов, раз в год попадается кто-нибудь с подходящей зарплатной вилкой, после чего заходит разговор за технику. Пока меня никто не удивил в нужную сторону.

(Ответить) (Уровень выше)


(Читать комментарии) -