区别在于:一、范围查询;二、查询效率;三、磁盘空间利用率;四、动态性能;五、内存使用。B 树索引支持范围查询,而哈希索引不支持。因为哈希表是基于哈希函数的,所以无法按顺序存储数据。
一、范围查询
B 树索引支持范围查询,而哈希索引不支持。因为哈希表是基于哈希函数的,所以无法按顺序存储数据。
二、查询效率
哈希索引的查询效率非常高,通常在常数时间内完成查找。而 B 树索引的查询效率通常比哈希索引略低,但仍然非常高效。
三、磁盘空间利用率
B 树索引可以使用磁盘块的全部空间,而哈希索引无法利用磁盘块的全部空间。因为哈希表的大小通常是固定的,所以可能会浪费一些磁盘空间。
四、动态性能
B 树索引可以通过“分裂”和“合并”操作动态增加或减少节点,从而保持树的平衡。而哈希索引无法动态调整其大小,必须重新创建索引。
五、内存使用
哈希索引通常需要更多的内存来存储哈希表和相关指针。而 B 树索引通常只需要存储根节点在内存中,其他节点在磁盘上。
延伸阅读:
什么是索引?
在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。
索引提供指向存储在表的指定列中的数据值的指针,然后根据您指定的排序顺序对这些指针排序。数据库使用索引以找到特定值,然后顺指针找到包含该值的行。这样可以使对应于表的SQL语句执行得更快,可快速访问数据库表中的特定信息。
文章标题:B 树索引和哈希索引区别,发布者:Flawy,转载请注明出处:https://worktile.com/kb/p/53282