2016-11-24 4 views
0


私はPostgres DBを使用しており、いくつかのvarcharカラムを持つMyObjectsというテーブルがあります。値は分離された単語ではありません(たとえば、URL、名前など)。私はこれらの列に沿ってたくさんフィルタリングします。特定の単語が値の先頭、途中、または末尾に対応する行を検索します。 テーブル自体は大きくなりません(最初の行の数はn * 10^3程度ですが、n * 10^5行程度になります) この場合はインデックスが必要です?もしそうなら、どんな種類のインデックスをお勧めしますか?
ありがとうございます!BTREE対GIN対GISTインデックス

答えて

0

WHERE col LIKE '%string%'のような検索パターンに役立つインデックスを探している場合は、pg_tgrmを使用するGINまたはGiSTインデックスのみが選択できます。

これらの索引は非常に大きくなる可能性があり、短い部分文字列を検索すると多くの場合役に立ちません。

このようなインデックスがあなたのケースでシーケンシャルテーブルスキャンに利点をもたらすかどうかを調べるには、試してみる必要があります。–一般的には答えられません。

関連する問題