Memilih Tipe Engine Penyimpanan pada MySQL

Mungkin kita sudah familiar dengan DBMS yang satu ini. Jika kita memutuskan untuk menggunakan database MySQL untuk aplikasi kita, maka kita harus secara bijak memilih tipe engine penyimpanan (storage engine) MySQL yang sesuai dengan  kasus yang ditangani.Tergantung situasinya, beberapa tipe engine penyimpanan mungkin menjadi pilihan terbaik tapi bisa jadi pula menjadi yang terburuk pada situasi yang lain.

Dengan pemilihan yang benar terhadap tipe engine penyimpanan MySQL yang sesuai dengan lingkungan pemrograman aplikasi yang sedang dibuat, kita akan mendapatkan performasi aplikasi yang terbaik dan dapat mengoptimalkan penggunaan database MySQL secara efektif.

Nah apa aja sih perbedaan dari engine-engine yang ada pada MySQL?

Kelebihan

  • MyISAM sangat baik dan cocok untuk query yang banyak menggunakan operasi SELECT (untuk pencarian dan mengambil/menampilkan data dari database) serta operasi non transactional.
  • innoDB cocok untuk operasi INSERT/UPDATE/DELETE secara paralel (karena menggunakan row level locking -- penguncian pada level baris) dan pada proses transactional(dengan adanya fitur rollback)
  • memory (HEAP) sangat cocok untuk akses data secara cepat 'on the fly', karena semua disimpan di memory (RAM)

Kekurangan

  • MyISAM kurang cocok untuk operasi yang banyak menggunakan query INSERT/UPDATE (karena memakai table level locking -- level penguncian pada table)
  • innoDB tidak cocok untuk operasi yang merupakan kombinasi dari operasi non-transactional dan operasi read only (banyak memakai query SELECT)
  • Memory (HEAP) tidak cocok untuk penggunaan dengan waktu yang lama long term usage (karena adanya masalah integritas data) dan kurang cocok untuk operasi transactional

Perbedaan

Tabel berikut merupakan ringkasan daftar perbedaan diantara ketiga tipe engine tersebut. Hanya fitur-fitur yg berbeda diantara ketiganya yang ditampilkan dalam daftar ini, sedangkan fitur-fitur yang sama tidak ditampilkan.

Feature MyISAM InnoDB Memory
ACID Transaction No Yes No
Configurable ACID Properties No Yes No
Crash Safe No Yes No (RAM)
Foreign Key Support No Yes No
Multi Version Concurrency Control (MVCC) No Yes No
Geospatial datatype Yes Yes No
Geospatial indexing Yes No No
Full-text Search Index Yes No No
Data Cache No Yes N/A
Compressed Data Yes Yes No
Storage Limits 256TB 64TB RAM
Storage Cost Low High N/A
Memory Cost Low High Medium
Locking Granularity Table Row Table

Semoga artikel kali ini bermanfaat :)

Source : http://cahyadsn.dev.php.or.id/detail_article.php?id=1