-
可扩展散列索引
散列索引是将键值通过散列函数,将记录分布到不同的桶当中,这里的桶就指的是存储地比如磁盘块或者内存页等。而根据桶的个数是否确定,可将散列索引分为静态散列索引和动态散列索引。可扩展散列索引就是一种动态散列索引,可以根据记录的增加或者减少来修改桶的个数。可扩展散列索引中通并不是存储地,而是指向存储地的指针。散列函数将键值转化为一个N个的二进制位,将该N个二进制位的前i个表示桶的数目,比如i= 2 那么就有2^2=4个桶。现在有这样一个极端的问题,我们假设一个桶可以存储2条记录,那么假设有3条记录经过散列函数转化后的二进制位前10位都一样,那么会出现什么情况呢?那么就是插入第三条索引记录的时候,由于桶满会一直分裂加倍桶的数目,知道i = 11即2048个桶而此时桶内的元素其实只有三个。这种问题可以通过线性散列索引 -
线性散列索引
线性散列索引解决了扩展散列索引利用率不高的问题,并且仍然可动态扩展 ,只不过每次增加1个桶。
动态散列索引
最新推荐文章于 2025-05-28 14:47:10 发布
本文深入探讨了可扩展散列索引和线性散列索引的概念,前者可根据记录增减动态调整桶数量,后者解决利用率问题并保持动态扩展特性,每次仅增加一个桶。

1546

被折叠的 条评论
为什么被折叠?



