Алгоритм соединения хэшированием

Алгоритм соединения хэшированием

Алгоритм соединения хэшированием (hash join) разновидность алгоритма соединения.

Алгоритм получает на вход 2 таблицы и условие соединения. Результатом его работы является таблица с результатами соединения.

Меньшая из двух входных таблиц помещается в специальную структуру данных в памяти: хэш-таблицу, которая обеспечивает очень высокую скорость поиска. Затем для каждой строки из большей таблицы выполняется поиск значений, соответствующих условию соединения. Результаты помещаются в выходную таблицу.

На псевдокоде алгоритм можно описать примерно так:

[ХэшТаблица] = СтроитьХэшТаблицу([МеньшаяТаблица], [УсловиеСоединения]);
Для каждой строки [r] из [БольшаяТаблица]
   Вывести ([r], ИскатьВХэшТаблице([ХэшТаблица],[r]));

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

  • Соединение хэшированием существенно быстрее соединения вложенными циклами. При относительно небольшом размере меньшей таблицы это самый эффективный вид соединения.

Недостатки:

  • Условием соединения может быть только равенство.
  • Большая потребность в памяти для построения хэш-таблицы, что крайне ограничивает масштабируемость алгоритма при увеличении размеров меньшей таблицы.
  • Хэш таблица должна быть построена полностью, до того как первый результат будет записан в результирующую таблицу, что делает этот вид соединения неприемлемым при необходимости получить первую строку результата как можно быстрее.

В реальных системах используются более изощрённые схемы хэширования, чем в приведённом примере, в основном нацеленные на то чтобы уменьшить потребность в памяти для построения хэш-таблицы. Например обе таблицы могут разбиваться на части и хэш строится не для всей таблицы, а только для её части.



Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать реферат

Полезное


Смотреть что такое "Алгоритм соединения хэшированием" в других словарях:

  • Алгоритм соединения (СУБД) — Целью алгоритма соединения является реализация в конкретной СУБД операции соединения реляционной алгебры. Исходными данными для алгоритма являются два отношения (таблицы) и описание условия соединения. Результатом операции является отношение… …   Википедия

  • Алгоритм соединения слиянием сортированных списков — (merge join, sort merge join, sort merge join) разновидность алгоритма соединения. Алгоритм получает на вход 2 таблицы и условие соединения. Результатом его работы является таблица с результатами соединения. Входные таблицы должны быть… …   Википедия

  • Операция соединения (СУБД) — Операция соединения (СУБД)  реализация в конкретной СУБД операции соединения реляционной алгебры. Исходными данными для операции являются два отношения (таблицы) и описание условия соединения. Результатом операции является отношение… …   Википедия

  • Join (SQL) — У этого термина существуют и другие значения, см. Join. Правильный заголовок этой статьи  JOIN. Он показан некорректно из за технических ограничений. JOIN  оператор языка SQL, который является реализацией операции соединения реляционной …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»