Встречается на 2% собеседований по Java

Что такое HASH JOIN

HASH JOIN — это алгоритм соединения таблиц в базах данных, использующий хеш-таблицу для эффективного поиска совпадений.

Как работает:

  1. Построение хеш-таблицы — одна из таблиц (обычно меньшая) полностью читается, и её ключи соединения хешируются в память.
  2. Проверка совпадений — вторая таблица сканируется, и для каждой строки вычисляется хеш ключа соединения. Если хеш совпадает с записью в хеш-таблице, строки объединяются.

Преимущества:

  • Эффективен для больших таблиц, если одна из них помещается в память.
  • Быстрее вложенных циклов (NESTED LOOP) для больших данных.

Пример (псевдокод):

java
Map<Key, Row> hashTable = buildHashTable(smallTable);
for (Row largeRow : largeTable) {
    Key key = largeRow.getJoinKey();
    if (hashTable.containsKey(key)) {
        emitJoinResult(hashTable.get(key), largeRow);
    }
}

Ограничения:

  • Требует достаточно памяти для хеш-таблицы.
  • Неэффективен, если хеш-таблица не помещается в RAM (тогда используется внешняя сортировка).
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы