Performa bukanlah masalah utama, setidaknya tidak bagi saya. Masalahnya lebih pada kunci pengganti vs kunci alami.
Kode negara tidak statis. Mereka bisa dan memang berubah. Negara mengubah nama (misalnya Ethiopia ke Eritrea). Mereka muncul (misalnya pecahnya Yugoslavia atau Uni Soviet) dan tidak ada lagi (misalnya Jerman Barat dan Timur). Ketika ini terjadi, kode standar ISO berubah.
Selengkapnya di Perubahan Nama Sejak 1990:Negara, Kota, dan Lainnya
Kunci pengganti cenderung lebih baik karena ketika peristiwa ini terjadi, kunci tidak berubah, hanya kolom dalam tabel referensi yang berubah.
Karena alasan itu, saya lebih cenderung membuat tabel negara dan mata uang dengan kunci utama int.
Meskipun demikian, bidang kunci varchar akan menggunakan lebih banyak ruang dan memiliki kelemahan kinerja tertentu yang mungkin tidak akan menjadi masalah kecuali Anda melakukan banyak kueri.
Untuk kelengkapan, Anda mungkin ingin merujuk ke Kesalahan Pengembangan Basis Data yang Dibuat oleh Pengembang Aplikasi .