数据库-4 Hash算法

本文介绍了数据库中Hash算法的核心——散列函数,通过除法求余散列法和乘法散列举例说明,强调了如何通过牺牲查找时间来节省空间。在Oracle中的应用包括Hash join、SQL解析和Hash分区等,展示了Hash算法在数据库操作中的重要作用。
摘要由CSDN通过智能技术生成

Hash算法: 以时间换空间。

散列函数是Hash算法的核心。

以除法求余散列法和乘法散列为例:


除法求余散列:

全域K=2000, 碰撞值3 

m=2000/3 ≈666,取666左右的素数701.

得散列函数 h(k) = k mod 701


散列后702和1得到同一个值,在存放时需要进行额外处理。

结果散列后最大值是701,相比散列前的最大值2000,节省空间。

但在查找时会额外消耗时间,同一个Hash值对应多个原始值,可能需要进行额外查找,才能得到查找的值。

除法求余散列建议除数采用素数。


乘法散列    h(k) = floor( m(kA mod 1) )

关键字k乘以常数A(0.1),取出小数部分,再乘以m,取整数部分

A值建议取(√5 -1)/2   黄金分割值

如 k=123 456     p=14     m&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值