Skip to content

07 - Database Hash Tables ✸ YugabyteDB Database Talk (CMU Intro to Database Systems)

Hash Functions

目前被认为最快最先进的哈希算法是 Rapid Hash

Linear Probe Hashing

线性探测法...

Cuckoo Hashing

多哈希函数替代单函数:每个键通过 k 个独立哈希函数(通常 k=2 或更多)映射到 k 个可能的存储位置。
插入新键时,检查其所有 k 个候选位置。若有空位,直接放入。若全被占用,则随机驱逐其中一个位置上的“老键”,将新键放入。被驱逐的“老键”需重新安置:用其 k 个哈希函数找新位置(避开刚被驱逐的位置)。若新位置被占,则递归驱逐,形成“链式反应”。终止条件:找到空位,或检测到循环(回到起点或超过最大尝试次数),此时触发扩容重建。

插入随机驱逐感觉反直觉...

Chained Hashing

链式存储法...

Extendible Hashing

可扩展哈希是简历再链式存储法之上的,基本思想是让链式存储法无线增长的 bucket 变成,在 bucket 满了之后拆分,重新分配。
哈希函数生成二进制数据,通过哈希值取前缀用于选择 bucket ,如果 bucket 满了,就将 bucket 里的数据拆分按照前缀,同时令 bucket 的大小翻倍,同时增加前缀的个数。

Linear Hashing

线性哈希