Performa MySQL dan InnoDB

Untuk dapat menggunakan transaction pada database MySQL, maka kita harus menggunakan InnoDB sebagai tipe storage engine database kita. Namun, ketika kami (team Valudata) mencoba menggunakan transaction di MySQL, ternyata performa InnoDB dalam menangani transaction itu masih belum sehandal MS SQL. Lemot sekali.

Untuk melakukan perhitungan gaji pada Aplikasi Payroll yang kami kembangkan, dapat menghabiskan waktu hingga 15-30 menit. Setelah melakukan beberapa tweak, performa sangat meningkat sih, namun masih kurang stabil. Kadang bisa cepat, kadang bisa lambat.

Tweak yang sudah pernah dilakukan antara lain:

  • setting variabel innodb_flush_log_at_trx_commit ke nilai 2.
  • menambahkan Index untuk semua field yang digunakan untuk klausa join dan where.
  • meningkatkan kapasitas penggunaan memory ram MySQL

Berdasarkan pengamatanku, cara pertama dan kedua mampu meningkatkan performa, sedangkan peningkatan kapasitas memory maksimal yang dapat digunakan oleh MySQL sepertinya tidak begitu memberikan efek yang signifikan.

Masih tetap akan menggunakan MySQL?

Masih cukup bimbang, apakah akan tetap menggunakan MySQL dan InnoDB di project yang akan datang atau beralih ke MS SQL. Salah satu alasan pemilihan MySQL adalah ongkos untuk deployment yang (relatif) lebih murah dibandingkan MS SQL, khususnya pada aplikasi web.

Namun, ternyata Evernote menggunakan MySQL dan InnoDB untuk menyimpan data-datanya. Sungguh menakjubkan!!

Mengingat InnoDB merupakan default storage engine pada MySQL 5.5+, aku berharap performa transaction pada MySQL akan meningkat pada versi-versi berikutnya. Dan, sepertinya aku masih akan mempercayai MySQL. bigsmile

Tetap Sehat, Tetap Semangat, agar dapat Tetap dalam Perdjoeangan!!

Hartadi

I’m a Passionate Programmer ;)

Leave a Reply