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

Apa perbedaan antara MyISAM dan InnoDB?

Perbedaan utama antara InnoDB dan MyISAM ("sehubungan dengan mendesain tabel atau database" yang Anda tanyakan) adalah dukungan untuk "integritas referensial" dan "transaksi".

Jika Anda memerlukan database untuk menerapkan batasan kunci asing, atau Anda memerlukan database untuk mendukung transaksi (yaitu perubahan yang dibuat oleh dua atau lebih operasi DML ditangani sebagai satu unit kerja, dengan semua perubahan diterapkan, atau semua perubahan dikembalikan) maka Anda akan memilih mesin InnoDB, karena fitur ini tidak ada di mesin MyISAM.

Itulah dua perbedaan terbesar. Perbedaan besar lainnya adalah konkurensi. Dengan MyISAM, pernyataan DML akan mendapatkan kunci eksklusif di atas meja, dan saat kunci itu ditahan, tidak ada sesi lain yang dapat melakukan operasi SELECT atau DML di atas meja.

Kedua mesin spesifik yang Anda tanyakan (InnoDB dan MyISAM) memiliki tujuan desain yang berbeda. MySQL juga memiliki mesin penyimpanan lain, dengan tujuan desainnya sendiri.

Jadi, dalam memilih antara InnoDB dan MyISAM, langkah pertama adalah menentukan apakah Anda memerlukan fitur-fitur yang disediakan oleh InnoDB. Jika tidak, maka MyISAM siap untuk dipertimbangkan.

Diskusi perbedaan yang lebih rinci agak tidak praktis (dalam forum ini) tidak ada diskusi yang lebih rinci tentang ruang masalah ... bagaimana aplikasi akan menggunakan database, berapa banyak tabel, ukuran tabel, beban transaksi, volume pilih , insert, update, persyaratan konkurensi, fitur replikasi, dll.

Desain logis dari database harus dipusatkan di sekitar analisis data dan kebutuhan pengguna; pilihan untuk menggunakan database relasional akan muncul belakangan, dan bahkan kemudian pilihan MySQL sebagai sistem manajemen database relasional, dan kemudian pemilihan mesin penyimpanan untuk setiap tabel.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mySQL ::masukkan ke tabel, data dari tabel lain?

  2. Ekspresi Tabel Umum di MySQL

  3. DROP TABLE JIKA ADA di MySQL

  4. Cara Menginstal dbWatch untuk Memantau Kinerja MySQL di Linux

  5. Bagaimana mengatasi masalah pengkodean karakter MySQL?