PostgreSQLPytanie 04 z 11
Nested Loop, Hash Join, Merge Join
Najpierw odpowiedz na głos lub w myślach, potem porównaj.
Odpowiedź
To sposoby wykonania łączenia, a nie odpowiedniki logicznych INNER lub LEFT JOIN.
- Nested Loop: dla wierszy jednej strony szuka dopasowań w drugiej; może być świetny dla małego wejścia i dobrego indeksu.
- Hash Join: buduje tablicę hashującą dla jednej strony i wyszukuje dopasowania, zwykle dla równości.
- Merge Join: przechodzi przez dane uporządkowane po kluczach łączenia; koszt sortowania też ma znaczenie.
Praktyka: patrzę na liczby wierszy, pętle, pamięć i zapis na dysk w planie.
Pułapka: nie istnieje jedna zawsze najlepsza metoda. Zmiana statystyk lub wielkości danych może uzasadnić inny plan.
Jak poszło? Bądź szczery — „Jeszcze nie” dodaje pytanie do powtórki.