Konfigurasi MySQL untuk Trafik Tinggi
Secara default MySQL hadir dengan konfigurasi yang sudah cukup mumpuni melayani request database puluhan orang, apalagi kalau cuma sekedar melayani testing environment oleh sang Developer saja. Namun jika pengguna aplikasi anda ini ratusan atau bahkan ribuan, anda harus melakukan tuning ulang untuk server bertrafik tinggi.
Untuk melakukan konfigurasi tersebut, silakan buka file my.cnf pada direktori /etc/mysql/my.cnf (jika anda menggunakan linux) atau C:\xampp\mysql\bin\my.ini.
Silakan pakai dan ubah konfigurasi yang saya rekomendasikan berikut:
[sourcecode language="bash"]
[mysqld]
datadir=/var/lib/mysql
tmpdir=/var/lib/mysqltmp
socket=/var/lib/mysql/mysql.sock
skip-locking
skip-name-resolve
table_cache=2048
thread_cache_size=32
back_log=100
max_connect_errors=10000
open-files=10000
interactive_timeout=400
wait_timeout=300
max_connections=500
skip-bdb
log-slow-queries=/var/lib/mysqllogs/slow-log
long_query_time=2
log-queries-not-using-indexes
max_allowed_packet=128M
tmp_table_size=256M
max_heap_table_size=256M
query_cache_size=32M
query_cache_limit = 6M
sort_buffer_size=4M
read_buffer_size=4M
read_rnd_buffer_size=16M
join_buffer_size=2M
default-storage-engine=InnoDB
key_buffer_size=128M
myisam_sort_buffer_size=64M
innodb_log_file_size=100M
innodb_buffer_pool_size=6G
innodb_additional_mem_pool_size=20M
innodb_support_xa = 0
[mysql.server]
user=mysql
[mysqld_safe]
[/sourcecode]
Simpan dan restart server MySQL untuk menikmati hasilnya. Anda juga bisa lebih gila lagi mengatur konfigurasi diatas jika pengguna aplikasi anda memang sangat banyak, tapi orang bijak taat pajak pasti punya solusi lain, gunakanlah MySQL Load Balancer dan beberapa server MySQL.