July 9, 2017

Tuning Mysql Untuk Meningkatkan Kinerja Database

Tuning Mysql
Tuning Mysql untuk meningkatkan kinerja database adalah usaha yang dilakukan untuk memperbaiki performance Mysql sebagai database yang digunakan dalam server sobat. Jika dalam server tersebut hanya terdapat sebuah web server yang menjalankan satu website, mungkin peningkatan performance kinerja Mysql tidak begitu diperlukan, mengingat jumlah database maupun tabel yang ada biasanya masih bisa di atasi oleh konfigurasi bawaan software distro.

Berikut merupakan contoh konfigurasi yang telah di tingkatkan dalam file /etc/my.cnf (tuning my.cnf) pada sistem operasi Fedora / CentOS Linux:

[mysql]

# CLIENT #
port                           = 3306
socket                         = /var/lib/mysql/mysql.sock

[mysqld]

# GENERAL #
user                           = mysql
default-storage-engine         = InnoDB   #
socket                         = /var/lib/mysql/mysql.sock
pid-file                       = /var/lib/mysql/mysql.pid

# MyISAM #
key-buffer-size                = 32M
myisam-recover                 = FORCE,BACKUP

# SAFETY #
max-allowed-packet             = 16M
max-connect-errors             = 1000000
sql-mode                       = STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ONLY_FULL_GROUP_BY
innodb                         = FORCE

# DATA STORAGE #
datadir                        = /var/lib/mysql/

# BINARY LOGGING #
log-bin                        = /var/lib/mysql/mysql-bin
expire-logs-days               = 14
sync-binlog                    = 1

# CACHES AND LIMITS #
tmp-table-size                 = 32M
max-heap-table-size            = 32M
query-cache-type               = 0
query-cache-size               = 0
max-connections                = 200
thread-cache-size              = 50
open-files-limit               = 16384
table-definition-cache         = 1024  #bisa-dinaekkan-jadi-4096
table-open-cache               = 2048  #tergantung-fisik-memory

# INNODB #
innodb-flush-method            = O_DIRECT
innodb-log-files-in-group      = 2
innodb-log-file-size           = 64M
innodb-flush-log-at-trx-commit = 2
innodb-file-per-table          = 1
innodb-buffer-pool-size        = 512M #1/2-memory-fisik

# LOGGING #
log-error                      = /var/lib/mysql/mysql-error.log
log-queries-not-using-indexes  = 1
slow-query-log                 = 1
slow-query-log-file            = /var/lib/mysql/mysql-slow.log

Ganti file /etc/my.cnf dalam Fedora atau CentOS, dengan konfigurasi diatas, kebetulan RAM yang ada pada server sebesar 2GB dan menjalankan lebih dari 5 buah website, keterangan yang ada dalam konfigurasi bisa sobat sesuaikan dengan kemampuan server yang dimiliki.

Jika sobat menggunakan Ubuntu Linux, konfigurasi bawaan yang ada sudah cukup bagus, tetapi tuning Mysql pada Ubuntu Linux juga bisa dilakukan dengan cara yang sama seperti diatas, yaitu dengan melakukan peningkatan jumlah yang ada dalam konfigurasi untuk setiap baris konfigurasi.

Dibawah ini adalah beberapa tulisan di internet yang bisa sobat gunakan sebagai referensi perubahan konfigurasi untuk meningkatan kinerja Mysql (Tuning Mysql):
Sedangkan jika sobat telah menguasai tentang bagaimana cara melakukan Tuning Mysql, lakukan cek performance Mysql dengan menggunakan MysqlTuner, dan sesuaikan konfigurasi dengan hasil yang dikeluarkan dari hasil cek tersebut, cara penggunaan dan file yang digunakan dapat di lihat pada link berikut:
Semua link diatas akan membuka windows atau tab baru pada browser.

Selamat Mencoba dan Terima kasih.

1 comment:

  1. Terimakasih banyak tutorialnya, sangat bermanfaat :)

    ReplyDelete