После того как я сделал поиск в Интернете, я обнаружил, что сложность алгоритма Hash Join для объединения двух таблиц называется O (N + M), где N и M - количество кортежей из двух таблиц.Почему сложность хеш-соединения O (n + m)?
Интересно, почему это O (N + M), вместо O (N * M) в худшем случае?
Насколько я знаю, Hash Join является реализацией equi-соединения: если заданы две таблицы R и S, то следует выбирать кортежи t из их кросс-произведения R * S, где t [RA] = t [SA] а представляет собой общий признак R и S.
Примечания: 1) Интересно, если сложность O (N + M), особенно, когда значение данных является не уникальны в атрибуте соединения (т.е. мы не присоединяются к ключевым атрибутам). 2) Обратите внимание, что соединение атрибута A может быть или не быть ключом.
У вас есть ссылка на то, где это сказано? – Thilo
Big Os не так полезны и вводят в заблуждение в базах данных, основными издержками являются задержки в сети/диске –
@SleimanJneidi Если мы предположим, что все хеш-соединение происходит в памяти, то будет ли OP более значимым? –