Jumat, 18 Januari 2013

MySql Engine : MyISAM atau InnoDB


Kebanyakan orang tidak begitu memperhatikan engine MySql yang mereka gunakan meskipun dalam kesehariannya mungkin orang-orang tersebut berkecimpung dalam console MySql selama lebih dari 6 jam dalam sehari.

Secara umum mungkin hal ini tidak begitu bermasalah karena default engine MySql yaitu MyISAM telah melakukan tugasnya dengan baik. Namun terkadang menggantinya ke engine lain atau sekedar untuk menambah wawasan dengan mengetahui apa saja kah yang dapat dilakukan oleh engine Mysql lainnya seperti InnoDB.

Banyak alasan kenapa banyak pelaku IT menggunakan Mysql sebagai Aplikasi Databasenya. Salah satu alasan utama mereka mungkin saja sama seperti alasan saya yaitu karena "Tidak perlu membeli lisensi untuk dapat menggunakan segala fasilitas yang ada pada MySql".

Artikel kali ini saya akan coba membandingkan perbedaan Mysql Engine MyISAM dengan InnoDB. Langkah pertama, mari kita lihat tipe-tipe MySql Engine dengan mengetikkan perintah berikut pada mysql console anda :

Untuk mengetahui engine apa yang digunakan pada sebuah table database mysql ketikkan perintah berikut




Berikut beberapa perbedaan antara kedua engine Mysql tersebut :

1. Keterbatasan pada engine MyISAM
    Tidak mengenal Foriegn keys dan cascading deletes dan updates
    Tidak memiliki kemampuan rollback
    Tidak dapat melakukan transactional integrity (ACID compliance)
    Limit Rom sebanyak 4,284,867,296 rows
    Maximum index per row = 64 indexes
2. InnoDB Limitations
    No full text indexing
    tidak dapat di kompres dengan cepat, read-only

Kapan harus menggunakan engine MyISAM?

Engine MyISAM di design untuk database yang query-nya lebih banyak dari update-nya. Dalam hal ini anda akan mendapatkan hasil query (READ) yang lebih cepat ketimbang write(INSERT / UPDATE).

Engine MyISAM menggunakan tabel level locking dan ini akan menjadi masalah besar ketika query pada database anda seperti INSERT/UPDATE/DELETE memiliki load yang cukup tinggi.

Kapan  harus menggunakan engine InnoDB?

Engine InnoDB menggunakan row level locking dan memiliki kemampuan untuk commit, rollback dan kemampuan crach-recovery untuk melindungi data-data anda. Engine ini juga memiliki dukungan untuk database transaksi dan tingkat toleransi kesalahan.

Tidak ada komentar:

Posting Komentar