私が見つけた情報から、どちらも同じ問題を解決します。配列の包含や共通部分(&&、@>、<@など)などのより難解な操作です。ただし、どちらを使用するか(またはどちらも使用しないか)についてのアドバイスに興味があります。PostgreSQL
のドキュメントには、これに関するいくつかの情報があります。
- GINインデックスルックアップはGiSTの約3倍高速です
- GINインデックスの構築にはGiSTの約3倍の時間がかかります
- GINインデックスの更新はGiSTの約10倍遅い
- GINインデックスはGiSTの2〜3倍です
ただし、メモリとインデックスのサイズの比率が小さくなり始めたとき(つまり、インデックスのサイズが使用可能なメモリよりもはるかに大きくなったとき)にパフォーマンスに影響があるかどうかを知りたいと思いますか?#postgresql IRCチャネルで、GINはすべてのインデックスをメモリに保持する必要があると言われました。そうしないと、Bツリーとは異なり、ディスクから読み込む部分がわからないため、効果的ではありません。特定のクエリ?質問は次のようになります:これは本当ですか(私もこれの反対を言われたので)?GiSTにも同じ制限がありますか?これらのインデックス付けアルゴリズムの1つを使用する際に注意する必要がある他の制限はありますか?