少なくとも私にとっては、パフォーマンスは実際には主要な問題ではありません。問題は、代理キーと自然キーの違いです。
国コードは静的ではありません。彼らは変化することができ、そして変化します。国によって名前が変更されます(例:エチオピアからエリトリア)。それらは誕生し(例えば、ユーゴスラビアやソビエト連邦の崩壊)、存在しなくなります(例えば、西ドイツと東ドイツ)。これが発生すると、ISO標準コードが変更されます。
これらのイベントが発生してもキーは変更されず、参照テーブルの列のみが変更されるため、代理キーの方が優れている傾向があります。
そのため、代わりにint主キーを使用して国と通貨のテーブルを作成する傾向があります。
そうは言っても、varcharキーフィールドはより多くのスペースを使用し、パフォーマンス上の不利な点があります。これは、膨大な数のクエリを実行しない限り、おそらく問題にはなりません。
完全を期すために、を参照することをお勧めします。 AppDevelopersによるデータベース開発の間違い 。