Maaf niy, dah lama nggak ikutan posting. Coba posting sekaligus test email :-).


Vavai

MySQL Amazing Tips for improve, tuning and increase MySQL Performance

http://www.vavai.com/blog/index.php?/archives/104-MySQL-Amazing-Tips-for-improve,-tuning-and-increase-MySQL-Performance.html#extended

Beberapa waktu yang lalu saya disibukkan dengan masalah lambatnya akses aplikasi dalam mengakses database Mysql. Sebelum melakukan perubahan server dari SUSE 10.1 menjadi SLES 10 aplikasi berjalan normal dalam arti lambatnya akses masih bisa ditolerir.
 
Complain dari bagian HRD membuat saya mesti turun tangan karena perkataannya cukup menggelikan (bagi dia) tapi menyesakkan hati (bagi staff saya), hihihi... Masya dia bilang,"Saya klik tombol proses, ditinggal buat ke kamar kecil, wudhu, shalat, membuat kopi dan menghabiskannya baru kembali ke komputer, proses masih belum selesai...". Sepertinya sih terlalu didramatisir tapi daripada saya kehilangan reputasi, lebih baik diatasi cepat-cepat (padahal ini memang sudah tugas saya :-D)
 
Setelah Google dengan key "increase mysql performance" dan melakukan beberapa perubahan setting, peningkatan kecepatan cukup luar biasa. Memang sih dalam lingkup intranet, tapi kecepatan koneksi yang tadinya membutuhkan waktu 10 detik-12 detik menjadi 1 detik, bahkan kurang (artinya dibawah 1 detik). Saya sempat iseng mencoba menggunakan MyODBC (bukan hanya aplikasi native direct ke MySQL) dan kecepatannya memang meningkat jauh.
 
Berikut adalah hal-hal yang saya lakukan :
 

1. Memperbaiki DNS setting dan memasukkan ip address / nama host client yang mengakses mysql kedalam file /etc/hosts di server mysql.

Proses edit file /etc/hosts ini bisa dilakukan menggunakan webmin ataupun diedit langsung. Saya sendiri menggunakan webmin karena biasa melakukan akses administrasi via web. Tips ini meningkatkan kecepatan koneksi hingga 10X

2. Memperbaiki / meningkatkan setting konfigurasi MySQL pada file my.cnf.

Secara default, setting mysql menggunakan setting normal dengan memori kecil.

 
# This is for a system with little memory (32M - 64M) where MySQL plays
# an important part, or systems up to 128M where MySQL is used together with
# other programs (such as a web server)

 
Dengan memori yang ada pada server saya sebesar 1 GB, kemampuan MySQL dapat lebih ditingkatkan dengan menaikkan key_buffer_Size (untuk model tabel MYISAM) dan innodb_buffer_pool_size (untuk tipe table Inno-db) dan table_cache. Jangan lupa, angka yang diisikan adalah angka dalam bentuk umum memory (kelipatan dari 2n), misalnya 128 MB, 256 MB, 512 MB dll.
 
Dalam beberapa proses instalasi, biasanya ada juga file konfigurasi untuk mysql yang dijalankan pada komputer dengan memori besar. Nama file konfigurasinya : my-large.cnf.
 
Sebelum melakukan perubahan setting, backup terlebih dahulu konfigurasi yang lama, untuk berjaga-jaga jika setting yang baru justru memunculkan masalah. Pengalaman saya, setting yang tidak tepat-terlalu tinggi misalnya-membuat MySQL tidak mau dijalankan.
 
Jangan lupa juga, perubahan konfigurasi MySQL sebaiknya dilakukan dalam posisi mysql off sehingga setelah selesai dire-konfigurasi bisa langsung ditest.
 
3. Meningkatkan kapasitas memori server
Kapasitas memori server sebesar 1 GB memang cukup besar, namun karena server menjalankan servis lain (ifolder server, intranet web server) saya mengajukan penambahan memori hingga 3 GB. Yang langsung terasa adalah kecepatan proses yang cepat sehingga saya sampai kepikiran develop aplikasi di server saja, hehehe...
 
4. Pada aplikasi, hindari query SELECT yang tidak spesifik seperti SELECT ....
Pastikan memilih kolom yang akan diambil dan sedapat mungkin hindari model Select

 
5. Gunakan indeks pada key table yang sering digunakan. Misalnya pada tabel karyawan yang menggunakan NIK (Nomor Induk Karyawan) sebagai primary key, indeks table menggunakan key ini. Jika ada proses query yang sering menggunakan nama field lainnya, buat indeks juga untuk field tersebut.

Referensi :
1. http://dev.mysql.com/books/hpmysql-excerpts/ch06.html
2. http://dev.mysql.com/doc/refman/5.0/en/server-parameters.html
3. http://www.linux-mag.com/index.php?option=com_content&task=view&id=911&Itemid=2035

Kirim email ke