インデックス、主キー、外部キーに苦労しています...そして、それらすべてを用意する必要があります。
2つのテーブルがある場合、どちらのテーブルにも整数が主キーとして含まれています。
最初のテーブルは、FKを介して2番目のテーブルの主キーを参照します。
table1.ref_field
にFK制約を作成しました(table2.id
)table1.ref_field
にインデックスを追加しましたこれは、これらのインデックス、主キー、外部キーを整理する最良の方法ですか?
あなたのデザインは良いです。パフォーマンスの問題がある場合(設計時にはわかりません)、table2.id列と同じ順序(ASC)で、列table1.ref_fieldにインデックスを作成する必要があります。これにより、テーブル/列への結合のパフォーマンスが向上します。インデックスの維持にはオーバーヘッドがあるため、そのコストとパフォーマンス向上のメリットを比較検討してください。
PostgreSQLは、残念ながら、他の列を参照する外部キー列にそのようなインデックスを自動的に作成しないため、自分で行う必要があります。
同じトピックに関するStackOverflowの質問は次のとおりです。
このようなインデックスを追加するとどのようなメリットがあるかを判断するためのクエリを次に示します。