Email or username:

Password:

Forgot your password?
Joinny Hash

Прочитал 430/660 страниц книжки про PostgreSQL, всё ещё не вдупляю, что с INNER JOIN не так и почему он считается чем-то плохим.

7 comments
cauf 🇷🇺

@strizhechenko а кто его считает плохим?

ddipp

Вот тут норм рассказано.
habr.com/ru/companies/cloud_mt

В части "Тайное преимущество LEFT JOIN"

@strizhechenko

Joinny Hash

@ddipp @cauf вот смотри.

Вообще после прочтения книжки мне в эти доводы слабо верится, но и книге вслепую доверять не огонь. Так-то статья свежая, вряд ли в новых версиях постгри неоптимальное планирование зафиксили, но подкрепил бы чел свои доводы про распознавание селективности планировщиком хотя бы EXPLAIN'ами, а лучше даже дампом базы (хотя бы той же самой учебной, с полётами). Прилечу домой, может поиграюсь, пойму :)

Joinny Hash

@cauf @ddipp а пока мне кажется что и на materialize всё вывозится нормально даже в nested loop'ах, сопоставимо кэшированию хэш-джойнов. Но, повторюсь, без замеров I/O запросов на холодных и прогретых кэшах - все мои слова - трындёжь :)

Joinny Hash

@cauf @ddipp ну а при описанной в статье OLAP'ной бигдате и вовсе странно, что у него вообще эти nested loop'ы выбрались вместо битмапов, которые при правильном effective_io_cache и достаточных work_mem должны выигрывать у остальных вариантов склеивания.

ddipp

Можно вот тут качнуть датасет и погонять по разному
postgrespro.ru/education/demod

@strizhechenko @cauf

Joinny Hash

@ddipp @cauf а я её и имел в виду :)

Go Up