Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Mengapa menggunakan batasan Kunci Asing di MySQL?

Kunci asing menegakkan integritas referensial . Batasan ini menjamin bahwa baris dalam tabel order_details dengan bidang order_id mereferensikan orders tabel tidak akan pernah memiliki order_id nilai yang tidak ada di orders meja.

Kunci asing tidak diperlukan untuk memiliki database relasional yang berfungsi (sebenarnya penyimpanan default MySQL engine tidak mendukung FK), tetapi mereka pasti penting untuk menghindari hubungan yang rusak dan baris yatim piatu (mis. integritas referensial). Kemampuan untuk menegakkan integritas referensial di tingkat basis data diperlukan untuk C di ACID untuk berdiri.

Adapun kekhawatiran Anda mengenai kinerja, secara umum ada biaya kinerja, tetapi mungkin akan diabaikan. Saya sarankan untuk memasukkan semua batasan kunci asing Anda, dan hanya bereksperimen tanpanya jika Anda memiliki masalah kinerja nyata yang tidak dapat Anda selesaikan jika tidak.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. php:sesi vs. database

  2. Bagaimana cara masuk otomatis di MySQL dari skrip Shell?

  3. Kesalahan sintaks atau pelanggaran akses:1059 Nama pengenal terlalu panjang

  4. Permintaan untuk menghitung jumlah tabel yang saya miliki di MySQL

  5. MYSQL SELECT peringkat pengguna (lebih dari x &kurang dari y)