Open3

Postgres関連

takithontakithon

B-tree

Not to mention
二分木構造でデータを保持して検索効率を上げる
クエリのユースケースとして、基本的な演算子は全て使えると考えて問題ない
例外として、LIKE検索は先頭文字を指定している場合はOKだが、それ以外ではインデックスは使われない
さらにCロケールを使わない場合は、別の方法でインデックスを作成する必要がある

takithontakithon

Hashインデックス

指定したカラムの値をハッシュ化して保持する
ハッシュ関数は選べる

メリ

データがうまく分散されていたらほぼO(1)
データサイズが大きいカラムに対してHahインデックスを効果的
64バイトのランダム文字列が大量に保存されたテーブルのインデックスサイズや検索性能の比較を、B-tree vs Hashで行なってる記事がある リンク

デメ

等価演算子しか使えない
データがうまく分散されないと旨みを享受できない
トランザクションログに残らない

つまり

大量のデータが入る想定で、同値検索しかユースケースがなく、かつUUIDv4のようなランダムな値が保持されるカラムの場合に使うと強そう