memilih storage engine

Ketika membangun sebuah server, MySQL juga turut diinstal agar dapat digunakan sebagai tempat penyimpanan data di database. Namun saat melakukan instalasi, kamu perlu memilih mesin penyimpanan (storage engine) yang akan digunakan. Ada beberapa jenis storage engine yang bisa membantu kamu memutuskan bagaimana memilih storage engine yang tepat sesuai kebutuhan.

Storage Engine

Mesin penyimpanan (storage engine) adalah sistem manajemen modul perangkat lunak yang digunakan untuk membuat, membaca, dan meng-update data dari database, alias tempat penyimpanan data. Ada dua tipe storage engine di MySQL, yaitu transactional dan non-transactional. Selain itu, ada pula berbagai jenis storage engine pada MySQL, yaitu:

  • InnoDB,
  • MyISAM,
  • Memory,
  • CSV,
  • Merge,
  • Archive,
  • Blackhole,
  • Federated,
  • dan masih banyak yang lain.

Dua storage engine yang sangat populer saat ini adalah InnoDB dan MyISAM. Keduanya seringkali menjadi pertimbangan saat memilih storage engine, dilihat dari fungsinya yang berbeda. Pada MySQL versi 5.5 ke atas, default storage engine-nya adalah InnoDB.

Memilih Storage Engine yang Tepat

Dari beberapa jenis storage engine di atas, berikut ini beberapa rekomendasi yang cocok kamu gunakan sebagai keperluan.

InnoDB

InnoDB menjadi salah satu produk Oracle Corp. setelah diakuisisi Oracle pada 2005. InnoDB Storage Engine lebih luas digunakan untuk proses transaksi (transactional) karena mendukung row-level locking, crash recovery, dan multi-version concurrency control. 

Juga menjadi salah satu Engine yang menyediakan foreign key. Dimana lebih cocok digunakan ketika integritas data lebih diprioritaskan.

Kelebihan InnoDB

  • Mendukung integritas data karena adanya foreign key dan constraints.
  • Memiliki fitur pemulihan data tersendiri.
  • Proses insert dan update data lebih cepat.
  • Mendukung row-level-locking.
  • Mendukung adanya transaksi antartabel.

Kekurangan InnoDB

  • Full Text Search tidak tersedia pada Storage Engine InnoDB.
  • Resource yang dibutuhkan lebih besar.

MyISAM

MyISAM termasuk salah satu storage engine tercepat, tapi tidak mendukung proses transaksi. Storage engine ini juga termasuk modul software yang sederhana, stabil, dan mudah digunakan. Selain itu, MyISAM juga menyediakan table-level locking yang lebih banyak digunakan oleh web dan data warehousing.

Jadi, jika kamu ingin menyimpan data yang sederhana dan tidak terlalu rumit, kamu bisa menggunakan tipe storage engine ini. Jika kamu memilih MyISAM, maka secara otomatis MySQL akan menentukan salah satu dari tiga jenis tabel pada MyISAM:

  1. MyISAM Static. Tipe ini digunakan ketika seluruh kolom dan tabel didefinisikan dengan ukuran tetap (fixed) sehingga tidak ada kolom seperti tipe data VARCHAR, TEXT ataupun BLOB, karena sifatnya fixed.
  2. MyISAM Dynamic. Tipe ini digunakan ketika seluruh kolom dan tabel didefinisikan dengan dinamis (dynamic). Tipe data VARCHAR adalah salah satu yang dinamis karena sifatnya efektif pada ukuran data (file) yang menyesuaikan isi dari masing-masing kolom (field).
  3. MyISAM Compressed. Kedua tipe MyISAM yaitu static dan dynamic dapat dikompres menjadi satu tipe, yaitu MyISAM Compressed dengan menggunakan perintah myisamchk. Tabel yang sudah dikompres tidak dapat dikenakan opsi operasi seperti INSERT, UPDATE, dan DELETE.

Kelebihan MyISAM

  • Sederhana dan tidak terlalu rumit.
  • Terdapat fitur Full Text Search

Kekurangan MyISAM

  • Tidak mendukung proses transaksi (transaction).
  • Proses insert dan update data lebih lambat dibanding InnoDB.

The Data Directory

Data Directory adalah lokasi di mana data MySQL berada, dengan direktori ini setiap database memiliki foldernya sendiri.

My ISAM:

  • .MYD file: Menyimpan data aktual dari tabel.
  • .MYI file: Menyimpan data tabel indeks (jika ada).

InnoDB:

  • .ibd file: Menyimpan tabel data dan indeks.
  • Ibdata1 and ib_logfile0/1 file: Menyimpan pada data directory root. Mengandung informasi sistem, tabel metadata, dan komponen lainnya.
  • .frm file: dikenal dengan format file, mengandung struktur dan informasi identifikasi pada tabel.
  • Db.opt file : terdapat pada folder database untuk menyimpan hasil konfigurasi database seperti character sets.

Simpulan

Jadi, apakah kamu sudah menentukan, storage engine mana yang cocok untuk kebutuhan website kamu? Begini cara sederhana untuk memutuskannya:

  1. Jika ada proses transaksi dalam kebutuhan website-mu, pilih InnoDB. Namun,
  2. jika website-mu tidak memerlukan proses transaksi seperti blogging atau untuk portfolio, kamu bisa menggunakan MyISAM.

Satu hal penting, pastikan agar website-mu cepat, aman, dan selalu dapat diandalkan, agar kecepatan dan keamanan tidak lagi menjadi masalah. Jika kamu menemukan kendala saat memilih storage engine, baik untuk website atau server, kamu bisa bertanya ke Ninja Support 24 jam yang selalu siap membantu kamu mengatasi masalah pada website atau server.

Demikian artikel tentang cara memilih storage engine yang tepat ini, jangan sungkan untuk meninggalkan ide-ide topik yang ingin kamu baca di blog Dewaweb, ya. Semoga artikel ini membantu!

Daftar dan tonton webinar Dewatalks