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 的大小翻倍,同时增加前缀的个数。