ホームページ >データベース >mysql チュートリアル >PostgreSQL は主キーと外部キーに自動的にインデックスを付けますか?
質問: PostgreSQL では外部キーと主キーのインデックスが自動的に作成されますか?キー?
答え:
PostgreSQL は主キーと一意制約のインデックスを自動的に作成しますが、外部キー関係については作成しません。これにより、一意の値が強制されますが、列を参照するためのインデックスは提供されません。
インデックスが存在するかどうかを確認する方法:
PostgreSQL は NOTICE メッセージを出力します。インデックスが自動的に作成されるとき。さらに、psql で「d」コマンドを使用してテーブルの定義を検査し、既存のインデックスを表示できます。
自動インデックス作成の理論的根拠:
主キー列は必須です一意性を強化し、データの整合性を維持するため。したがって、PostgreSQL は効率的なアクセスを確保するためにそれらに自動的にインデックスを作成します。ただし、外部キー制約には必ずしもインデックス作成が必要なわけではありません。
外部キーのインデックス作成:
クエリまたはクエリ時のパフォーマンスを向上させるために、外部参照列にインデックスを作成することを検討する必要があります。参照テーブルを変更します。ただし、各インデックスでは DML 操作でわずかなオーバーヘッドが発生するため、これは必須ではありません。
複合外部キーに関する考慮事項:
主外部キー (2 つ) を使用する場合外部キーを多対多の関係の主キーとして使用する場合)、主キーにインデックスが自動的に作成されるため、追加のインデックスが不要になる可能性があります。
要約すると、PostgreSQL は主キーと一意制約のインデックス作成を処理しますが、速度とデータベースのオーバーヘッドの間の適切なバランスを維持するために、外部キーのインデックス作成はオプションの最適化決定として残します。
以上がPostgreSQL は主キーと外部キーに自動的にインデックスを付けますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。