InnoDB vs MyISAM, dan Cara Mengoptimasinya
Daftar Isi “InnoDB vs MyISAM, dan Cara Mengoptimasinya“
1. MyISAM
2. InnoDB
3. Optimize Tabel pada MyISAM dan InnoDB
InnoDB vs MyISAM – Storage engine adalah cara bagaimana data disimpan, di edit ataupun diambil dari suatu tabel. Karenanya dalam satu database kita bisa membuat banyak macam jenis storage engine pada masing-masing tabelnya.
Salah satu kelebihan dari MySQL adalah kita dapat mendefinisikan tipe untuk tiap tabel. Mysql menyediakan banyak storage engine, akan tetapi yang paling sering digunakan adalah MyISAM dan InnoDB. Jika kita tidak menyebutkan tipe tabel saat membuat tabel, maka tipe tabel otomatis akan dibuat sesuai konfigurasi default server MySQL. Hal ini ditentukan oleh variabel default-table-type di file konfigurasi MySQL.
Perbedaan antara InnoDB vs MyISAM
Tidak ada mana yang lebih unggul diantara keduanya, tinggal bagaimana kita memilihnya sesuai kebutuhan, bahkan jika perlu dalam satu database gunakan storage engine yang berbeda-beda sesuai dengan kebutuhan dan keperluannya, tujuan terpentingnya adalah optimasi. Berikut penjelasan keuntungan dan kekurangan dari kedua tipe tabel InnoDB dan MyISAM.
1. MyISAM
Tipe tabel MyISAM merupakan tipe tabel yang sederhana, stabil dan mudah digunakan. Storage engine ini sering digunakan dalam website, data warehouse, dan model aplikasi lainnya. Jika kita akan menyimpan data sederhana yang tidak terlalu rumit, maka kita dapat menggunakan tipe tabel MyISAM.
Disisi lain MyISAM, lebih cocok dengan aplikasi yang tidak cukup bergantung pada integritas data dan kebanyakan hanya memilih dan menampilkan data. Kelebihan utama MyISAM adalah kecepatan dan kestabilannya. Jika kita memilih tipe tabel MyISAM, maka MySQL secara otomatis akan menentukan salah satu dari tiga jenis tabel MyISAM, yaitu:
a. MyISAM static. Jenis ini digunakan ketika semua kolom dalam tabel didefinisikan dengan ukuran yang pasti (fixed). Dengan kata lain, tidak ada kolom yang memiliki tipe seperti VARCHAR, TEXT dan BLOB. Karena sifatnya yang fixed, maka jenis ini akan lebih cepat, aman dan stabil.
b. MyISAM dymanic. Jenis ini digunakan ketika terdapat kolom dengan tipe yang dinamis, seperti tipe kolom VARCHAR. Keuntungan utama dari jenis ini adalah ukuran yang dinamis. Jadi sifatnya lebih efektif karena ukuran data (file) menyesuaikan isi dari masing-masing kolom (field).
c. MyISAM Compressed. Kedua jenis MyISAM, static dan dynamic dapat dikompresi menjadi satu jenis yaitu MyISAM Compressed dengan perintah myisamchk. Tentunya hasilnya lebih kecil dari segi ukuran. Tabel yang terkompresi tidak dapat dikenakan operasi seperti INSERT, UPDATE dan DELETE.
(+) Beberapa keuntungan menggunakan tabel tipe MyISAM:
- Sederhana untuk perancangan sehingga memudahkan bagi pemula dan tidak perlu khawatir tentang hubungan antara tabel.
- Lebih cepat daripada InnoDB pada keseluruhan, baik penyimpanan data ataupun konsumsi memory RAM sebagai akibat dari strukturnya yang sederhana sehingga jauh lebih sedikit konsumsi sumber daya server.
- Lebih cepat pada proses pembacaan (select), sangat disarankan jika tabel sering proses membaca-intensif.
- Mendukung Pengindeksan teks lengkap (full text search).
- Kapasitas yang tertampung bisa lebih besar dibanding engine InnoDB. Sekitar 256TB, sedangkan InnoDB daya tampungnya 64TB.
(-) Beberapa kekurangan menggunakan tabel tipe MyISAM:
- Tidak mendukung integritas data, sehingga untuk proses integritas data dilakukan secara program bukan di databasenya.
- Tidak mendukung transaksi seperti commit, rollback ataupun crash recovery atau disebut transactionless.
- Lebih lambat dibanding InnoDB jika proses yang sering terjadi adalah insert atau update.
2. InnoDB
Tipe tabel InnoDB merupakan tipe tabel MySQL yang mendukung proses transaksi atau transactional. InnoDB cocok digunakan dimana integritas data lebih prioritas.
(+) Beberapa keuntungan menggunakan tabel tipe InnoDB:
- Mendukung integritas data secara penuh dengan adanya foreignkey.
- Lebih cepat dalam proses menulis-intensif (penyisipan, update) tabel
- Mendukung transaksi antar tabel seperti commit, rollback ataupun crash recovery (sistem revovery lebih baik dari pada MyISAM).
(-) Beberapa kekurangan menggunakan tabel tipe InnoDB:
- Karena InnoDB mementingkan integritas, maka proses perancangan tentu membutuhkan usaha yang lebih besar, mengambil lebih banyak waktu dalam mendesain model data yang lebih kompleks daripada MyISAM.
- Mengkonsumsi sumber daya sistem lebih besar baik dalam penyimpanan maupun memory RAM.
- Proses pembacaan data lebih lambat dibanding engine MyISAM.
- Tidak mendukung pengindeksan teks penuh.
InnoDB lebih cocok untuk data situasi kritis dimana table sering dilakukan insert dan update.
Dengan demikian, jika ingin merancang sebuah Relational DataBase (RDB) lebih dianjurkan menggunakan InnoDB karena pada InnoDB mempunyai fitur foreign key. Sedang pada MyISAM walaupun masih bisa menggunakan join tetapi tidak bisa mempunyai foreign key.
Semua tipe storage adalah baik, bagaimana kita memiliihnya secara bijak dan disesuaikan dengan kebutuhan.

MyISAM vs InnoDB
3. Optimize Tabel pada MyISAM dan InnoDB
Dalam beberapa kasus kerap sekali muncul beberapa keluhan seperti ini:
- “Kenapa ya web saya lambat padahal koneksi bagus?”
- “Kok web saya berantakan ya?”
- “Kok web saya ga sama ya seperti yang saya install di lokal?”
Mengoptimalkan database dapat menjadi penting karena berbagai alasan, yang paling penting untuk mempercepat website dalam mengambil atau membaca data dari database. Dengan mengoptimalkan database, secara dramatis dapat mempengaruhi seberapa cepat beban website.
Biasanya, optimasi hanya akan menghasilkan hasil yang nyata jika kita memiliki database besar. Database yang ukurannya kecil tidak menunjukan hasil yang signifikan setelah dioptimasi.
Database dari WordPress sebaiknya dioptimasi untuk menghilangkan data yang tidak penting (misalnya revisi postingan yang berulang-ulang dan draft otomatis) sehingga ukuran database tidak membengkak dan kecepatan akses website tidak terganggu.
Berikut langkah optimize tabel melalui antarmuka phpMyAdmin, sebelumnya bukalah phpMyAdmin dan pilih database yang ingin dibersihkan.

optimize table phpmyadmin
- Lihatlah pada kolom Overhead (paling kanan), pilih Check All / Check tables having overhead untuk memilih semua tabel yang mengalami overhead.
- Lalu disebelah kanannya ada dropdown menu. Pilih Optimize Table dari menu tersebut, maka proses optimalisasi akan dimulai.
Namun perlu diperhatikan bahwa cara ini tidak akan bekerja pada semua jenis tabel. Optimize Table dan juga Repair Table hanya berjalan di MyISAM storage engine. Pada InnoDB Storage Engine tidak perlu dilakukan karena sudah mendukung crash recovery.

operasi atau langkah optimasi tabel
Cara diatas tetap bisa dilakukan meskipun server mysql memiliki tabel MyISAM dan InnoDB sekaligus, hanya saja akan tampil pesan kesalahan khusus hanya pada tabel bertipe InnoDB:
Table does not support optimize, doing recreate + analyze instead status : OK

hasil-optimize-table
Sementara dengan WP-Optimize plugin, kamu dapat membersihkan basis data sekaligus mengoptimalkan kinerjanya. Apa yang dilakukan WP-Optimize adalah menghapus revisi pos, komentar spam, dan komentar yang tidak disetujui dengan beberapa klik saja.
Semoga artikel berjudul “InnoDB vs MyISAM, dan Cara Mengoptimasinya” bisa bermanfaat dan silahkan jika masih ada yang kurang jelas dapat ditanyakan di kolom komentar dibawah ini.
Silahkan Like Fanspage dan Share artikel ini jika menurut kamu bermanfaat untuk kamu dan orang lain.
Artikel Lainnya
Domain merupakan sebuah nama unik yang diberikan oleh Domain Name Server (DNS) agar dapat dikenali sebagai nama server komputer seperti halnya pada web server dan email server di internet. Dengan mengenal domain, pengunjung dapat dengan mudah mengenali dan mengakses suatu website tanpa harus hafal IP address website tersebut.
step by step tutorialnya mudah dipraktekkan
saya sudah mencoba untuk (belajar) optimasi database dalam dua versi spt dijelaskan di artikel ini
terima kasih, sangat membantu