質問: 外部キー関係によりクエリ パフォーマンスは自動的に向上しますか?
シナリオ内Products と ProductCategories という 2 つのテーブルを使用し、CategoryId 列に外部キー制約を設定すると、特定のデータに基づいてデータを取得するクエリが構築されます。カテゴリID。外部キーの関係にもかかわらず、Products テーブルのクエリ実行プランにはクラスター インデックス スキャンが表示され、外部キーがパフォーマンスに役立たないことが示されています。
回答: 外部キーは主に次の役割を果たします。参照整合性制約により、データ整合性が確実に維持されます。インデックスとは異なり、インデックスはそれ自体ではクエリのパフォーマンスに直接影響しません。
追加の質問:
質問 1: にインデックスを作成する必要があります。すべての外部キー列?
クエリのパフォーマンスを最適化するには、すべての外部キー列にインデックスを作成することをお勧めします。これにより、検索が高速化され、これらのリレーションシップを含むクエリの効率が向上します。
質問 2: 外部キーには、リレーションシップ制約の適用以外に有用性がありますか?
外部キー孤立行を防止し、データ関係が確実に保持されるようにすることで、データの一貫性を維持するのに役立ちます。ただし、クエリのパフォーマンスには直接影響しません。
以上が外部キーによりクエリのパフォーマンスは自動的に向上しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。