Supersoft Teknologi

Crew yang kompak menghasilkan software yang tepak: D

MYSQL Performance

August 10, 2012

MySQL Performance :: kemarin visit lokasi client, yang database servernya bermasalah — sebuah query untuk laporan rekap membutuhkan waktu 30 menit.
Kini proses rekap tsb selesai dalam waktu < 1 detik……. :-) performa naik 1800x lipat, setelah investigasi sekitar 10 menit.

Solusi kasus tsb mudah sekali - penggunaan index yang tepat :-) maka performa bisa langsung naik drastis.

Tentu saja index juga ada kelemahannya, seperti :

(#) Extra disk space : dibutuhkan space ekstra untuk file-file index. Namun, ketika hard disk sudah mulai berukuran Terabyte :) maka ini tidak terlalu menjadi masalah.

(#) Slower Write : ini bisa terjadi karena proses penyimpanan data secara otomatis juga mengakibatkan index jadi di update.

Pada jumlah / ukuran index yang besar DAN volume write yang banyak, maka ini bisa menyebabkan penurunan performa.

SOLUSI :
*** Gunakan index seperlunya.
*** Jika perlu, pisahkan index ke disk yang lainnya.

CARA MENEMUKAN QUERY YANG LAMBAT ::

(#) Edit file konfigurasi MySQL, misal: /etc/mysql/my.cnf
(#) Pastikan ada baris-baris sbb :

log_slow_queries = /var/log/mysql/mysql-slow.log
long_query_time = 1
log-queries-not-using-indexes

(#) Restart MySQL
(#) Kini kita tinggal memperhatikan isi file log tsb diatas, misalnya dengan perintah : tail -f /var/log/mysql/mysql-slow.log

CARA MENGETAHUI ‘KENAPA’ QUERY LAMBAT ::

(#) Buka console MySQL : mysql -u usermysql -p
(#) Atau buka tab SQL di phpMyAdmin : http://localhost/phpmyadmin/​server_sql.php

(#) Ketikkan query yang lambat tsb, dengan sebelumnya diawali dengan statement “EXPLAIN”.

Contoh : EXPLAIN SELECT nama, alamat FROM team WHERE location = 5;

Maka akan muncul detail dari eksekusi query tsb, sehingga kita bisa melihat dimana titik masalahnya.