外部キーは、データベースの整合性を保証するためだけのものですか、それともパフォーマンス(たとえば、結合の実行)やストレージ効率(たとえば、外部テーブルインデックスのみを使用するなど)にも影響しますか?
一般的に答える場合、または特定のデータベースソリューション(MySQL、PostgresQL、Oracleなど)を念頭に置いている場合は、言及してください。
外部キーは、データベースの整合性を保証するためだけのものですか、それともパフォーマンス(たとえば、結合の実行)やストレージ効率(たとえば、外部テーブルインデックスのみを使用するなど)にも影響しますか?
一般的に答える場合、または特定のデータベースソリューション(MySQL、PostgresQL、Oracleなど)を念頭に置いている場合は、言及してください。
それ自体、外部キーはデータの一貫性に関するものであり、それ以上のものではありません。
もちろん、値をチェックする必要があるため、挿入と更新にはパフォーマンスへの影響がありますが、これがパフォーマンスにどのように影響するかは、他のものによって決まります。
一般に、主キー列と外部キー列にインデックスを設定する必要があります。これは、結合がインデックスを使用して高速になるようにするための最良の方法です(インデックスを作成すると、ストレージに影響します。結局、どこかに保存する必要があります)。
これは、ほとんどすべての最新のRDBMSに当てはまります。