Postgres DB では、テーブル A 内の数十万行のセットをフィルタリングする必要があります。これには、行内の IP アドレス列 (タイプ inet) が数千の IP アドレス ブロック (タイプ inet) のいずれかに一致する行のみを含めます。最初のテーブルの inet アドレスと 2 番目のテーブルの cidr 範囲でさまざまなインデックスを試しましたが、何をしても、プランナーはネストされた順次スキャンを実行し、<< 演算子を適用しますIP アドレスとプレフィックスのすべてのペア。
インデックスやその他の巧妙なトリックでこれを高速化する方法はありますか? (外部の手続き型スクリプトに頼ることができますが、Postgres内で実行できるかどうか疑問に思っていました。)
ありがとう!