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

Apakah memperkenalkan kunci asing ke MySQL mengurangi kinerja?

Dengan asumsi:

  1. Anda sudah menggunakan mesin penyimpanan yang mendukung FK (yaitu:InnoDB)
  2. Anda sudah memiliki indeks pada kolom yang terlibat

Maka saya kira Anda akan mendapatkan kinerja yang lebih baik dengan meminta MySQL menegakkan integritas. Menegakkan integritas referensial, bagaimanapun, adalah sesuatu yang dioptimalkan untuk dilakukan oleh mesin database. Menulis kode Anda sendiri untuk mengelola integritas di Ruby akan lebih lambat dibandingkan.

Jika Anda perlu berpindah dari MyISAM ke InnoDB untuk mendapatkan fungsionalitas FK, Anda perlu mempertimbangkan pengorbanan dalam kinerja antara kedua mesin tersebut.

Jika Anda belum memiliki indeks, Anda perlu memutuskan apakah Anda menginginkannya. Secara umum, jika Anda melakukan lebih banyak membaca daripada menulis, Anda menginginkan (membutuhkan, bahkan) indeks.

Penumpukan FK di atas hal-hal yang saat ini diindeks seharusnya menghasilkan lebih sedikit kinerja keseluruhan daripada menerapkan jenis pemeriksaan tersebut dalam kode aplikasi Anda.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara membuat objek JSON di MySql dengan nilai boolean?

  2. MySQL langsung INSERT INTO dengan klausa WHERE

  3. Kode Kesalahan:1822 ketika tipe data cocok, dengan kunci komposit

  4. masalah instalasi mysql-python (di mac os x lion)

  5. Bagaimana cara menghubungkan Database mysql dengan Dart?