回答:
あなたのデザインは良いです。パフォーマンスに問題がある場合(設計時にはわかりません)、table2.id列と同じ順序(ASC)で、table1.ref_field列にインデックスを作成する必要があります。これにより、テーブル/列への結合のパフォーマンスが向上します。インデックスの維持にはオーバーヘッドがあるため、そのコストとパフォーマンスの向上のメリットを比較検討します。
PostgreSQLは、残念ながら、他の列を参照する外部キー列にそのようなインデックスを自動的に作成しません。そのため、自分で作成する必要があります。
同じトピックに関するStackOverflowの質問を次に示します。
このようなインデックスを追加することでメリットが得られる場所を判断するのに役立つクエリを次に示します。
DELETE
はありません- 参照されたテーブルからではない場合、未使用のインデックスを維持することを避けて、多くのI / OとCPUを節約できます。デフォルトで作成されるべきだと思いますが、作成を抑制するオプションがあるだけです。