哈希联接算法可以没有哈希函数吗?

时间:2019-05-21 04:15:25

标签: database algorithm join hash jointable

我已经学过一些hash-join algorithms,并且我知道通常有一些哈希表,其键是由哈希函数计算的。我想知道是否可以省略哈希函数,而仅使用值代替?

例如,表user_table

[{"name": "tom", "id": 1}, {"name": "jerry". "id": 2}]

加入score_table

[{"score": 5, "id": 1}, {"score": 7, "id": 2}]

id

我可以只使用键id作为哈希表键吗?这样我就可以保存哈希函数的计算。

或者说哈希函数有很多种

def hash(id):
    return id

是其中之一吗?

还有其他需要应用哈希函数的需求吗?

更新

从与@OmG的讨论中,我知道至少在多个键联接中,必须有一个哈希函数来计算键。

1 个答案:

答案 0 :(得分:0)

它返回到哈希联接算法的定义。实际上,在哈希联接算法中使用哈希函数的原理支持更有效地处理联接属性。这里,在您的特定情况下,由于联接上没有任何额外的属性,仅使用唯一ID即可,因此不再需要任何哈希函数,或者换句话说,哈希函数可以是恒等函数。

但是,您应该注意到,该解决方案是特定于域的解决方案,如果没有更复杂的哈希函数,就不能将其推广到更复杂的情况下。