Продвинутый
Что такое Hash Join и Nested Loop Join в планах выполнения (EXPLAIN)?
Это физические алгоритмы, которыми СУБД соединяет таблицы:
1. Nested Loop (Вложенный цикл): СУБД берет первую строку из Таблицы А и пробегает по всей Таблице Б в поисках совпадений. Потом вторую строку и т.д. Эффективно, если одна из таблиц очень маленькая или есть хорошие индексы.
2. Hash Join (Хэш-соединение): СУБД берет меньшую таблицу, строит в оперативной памяти хэш-таблицу по ключу соединения. Затем сканирует большую таблицу и мгновенно ищет совпадения в хэш-таблице. Очень быстро для больших таблиц, но требует много RAM.
3. Merge Join: Обе таблицы сначала сортируются по ключу, а затем сливаются за один проход (как застежка-молния).