Pada saat kita baru instalasi MySQL, secara default setting MySQL kadang terasa agak lambat kalau buat import file sql atau di executi banyak koneksi. Jika PC anda punya memory yang cukup banyak anda bisa mengoptimalkan kinerja MySQL dengan beberapa settingan. Kita mulai dari variable mysql kita dengan cara buka mysql dengan, contohnya saya pakai SQLyog atau bisa dengan program yang lainnya, semisal PHPMyadmin.
Check Variable MySql, cukup dengan command SHOW VARIABLE;
check status , dengan command SHOW STATUS;
BASIC SETTINGS
Disini saya akan mencoba menerangkan 3 konsep basic / key yang perlu di utak atik dan yang paling dasar dari perubahan database mysql, yaitu :
- innodb_buffeer_pool_size , ini adalah setting yang paling dasar karena buffer pool adalah tempat dimana index dan data disimpan didalam memory bukan di disk. ini sangat penting terutama dengan penggunaan fitur Innodb, kalau anda pengguna mysql tapi tidak pakai innodb lebih baik saya sarankan pake NoSQL semacam monggodb, redish,couchbase atau yang lainnya. Setting nilai terlalu tinggi akan menyebabkan crash, sebaiknya sekitar 50-80% dari pemakaian RAM. Nila tipikal yang umum adalah
5-6GB ( 8GB RAM ) , 20-25GB ( 32GB RAM ) , 100-120GB ( 128GB RAM )
- innodb_log_file_size, mysql versi 5.5 keatas sudah semakin baik dalam hal redo log. setting ini digunakan untuk mempercepat pemulihan mysql apabila terjadi crash atau recovery database. Apabila mysql anda intensive dalam proses insert maka, mysql perlu ruang lebih banyak dalam hal tersebut. mulailah dengan angka innodb_log_file_size = 512MB akan memberikan ruang sekitar 1 GB. untuk versi 5.6 hanya bisa maksimum 4GB.
- max_connections, secara default mysql connection dimulai dengan angka 151. Jika website anda pernah mengalami error "too many connections" berarti anda perlu menambahkan setting ini ke angka yang lebih besar. tapi penambahan angka 151 keatas, semisal 1000 bisa jadi akan membuat website anda menjadi tidak responsive dengan adanya 1000 transaksi aktif. Untuk itu kita butuh thread pool untuk mengatasi seandainya sampai keterlaluan user kita, atau menggunakan elasticsearch, yang akan saya coba bahas di website ini :)
Sekarang kita akan menggunakan mysql calculator untuk menghitung, kira2 berapa cukup kita akan setting. untuk tools ada di
http://www.mysqlcalculator.com/ silahkan dibuka dan di edit sesuai dengan settingan mysql anda.
Sumber : https://sintret.com/blog_detail/511/mengoptimalkan_kinerja_mysql_server_base_on_ram_memory