PostgreSQL HASHインデックス 質問する

PostgreSQL HASHインデックス 質問する

PostgreSQL の HASH を B-TREE の代わりに使用すべき状況を誰か知っていますか。私には、これらは罠のように思えます。これらは、CREATE または保守に B-TREE よりはるかに時間がかかり (少なくとも 10 倍)、また、より多くのスペースを必要とします (私のテーブル列の 1 つでは、B-TREE は 240 MB を占めますが、HASH は 4 GB を占めます)。また、Google で調べたところ、SELECT は B-TREE より速くないことがわかりました。ただし、HASH は最近最適化されたか、Google が間違っていた可能性があります。

とにかく、皆さんの意見や経験を聞きたかったんです。これらのハッシュが悪質なら、みんな知っておくべきです。

ありがとうございます
。また、MySQL の HASH についてはどうでしょうか?

ベストアンサー1

既知のキー値、特に既知の一意の値がある場合、ハッシュは B ツリーよりも高速です。

ハッシュは、問題の列が一度もない<または>コマンドと比較してスキャンすることを目的としています。

ハッシュはO(1)複雑であり、B ツリーもO(log n)複雑です ( iirc ) 。したがって、一意のエントリを持つ大きなテーブルの場合、 を取得するのITEM="foo"が最も効率的な検索方法になります。

これは特にこれらの一意のフィールドが結合条件で使用される場合に実用的です。

おすすめ記事