小编Sam*_*ley的帖子

对于等式查找,Hash Index 怎么可能不比 Btree 快?

对于每个支持哈希索引的 Postgres 版本,都有一个警告或说明哈希索引与btree索引“相似或更慢”或“不更好” ,至少到版本 8.3。从文档:

7.2 版

注意:由于哈希索引的实用性有限,B 树索引通常比哈希索引更受欢迎。我们没有足够的证据表明即使对于 = 比较,哈希索引实际上也比 B 树更快。此外,哈希索引需要更粗的锁;见第 9.7 节。

7.3 版(最高 8.2 版)

注意:测试表明 PostgreSQL 的哈希索引B 树索引相似或更慢,并且哈希索引的索引大小和构建时间要差得多。哈希索引在高并发下也表现不佳。由于这些原因,不鼓励使用哈希索引。

8.3 版

注意:测试表明 PostgreSQL 的哈希索引的性能并不比 B 树索引好,哈希索引的索引大小和构建时间要差得多。此外,哈希索引操作目前没有 WAL 日志记录,因此在数据库崩溃后可能需要使用 REINDEX 重建哈希索引。由于这些原因,目前不鼓励使用哈希索引。

在这个 8.0 版本的线程中,他们声称从未发现哈希索引实际上比 btree 更快的情况。

根据这篇博文(2016 年 3 月 14 日):André Barbosa撰写的
Postgres 上哈希索引,即使在 9.2 版本中,除了编写实际索引之外,任何其他方面的性能提升几乎都没有。

我的问题是这怎么可能?

根据定义,哈希索引是一种O(1)操作,而 …

postgresql index btree hashing

11
推荐指数
3
解决办法
6187
查看次数

标签 统计

btree ×1

hashing ×1

index ×1

postgresql ×1