Banyak yang tidak tahu, MySQL maupun MariaDB punya kemampuan untuk memberitahukan informasi mana saja query SQL yang tidak optimal atau dalam bahasa teknisnya disebut 'slow query'. Seberapa slow sih sebuah query itu? itu tergantung kebutuhan dan pengukuran masing-masing, dan konfigurasi untuk menangkap query lambat itu juga mudah diatur kalau di mySQL.
Untuk mengaktifkan log ini, silakan ikuti cara berikut:
- Dengan MySQL CLI
Silakan jalankan terminal dan buat file log baru:
[sourcecode]
mkdir /var/log/mysql/
touch /var/log/mysql/mysql-slow.log
chown -R mysql:mysql /var/log/mysql/
[/sourcecode]
lalu login ke MySQL dengan
mysql -u namauser -p
:
kemudian enable slow query log dengan perintah:
[sourcecode]
mysql> SET GLOBAL slow_query_log_file = '/var/log/mysql/mysql-slow.log';
[/sourcecode]
dan:
[sourcecode]
mysql> SET GLOBAL long_query_time = 10;
[/sourcecode]
lalu:
[sourcecode]
mysql> SET GLOBAL slow_query_log = 'ON';
mysql> FLUSH LOGS;
[/sourcecode]
jika ingin juga mencatat query yang tanpa menggunakan INDEX:
[sourcecode]
mysql> SET GLOBAL log_queries_not_using_indexes = 'YES';
[/sourcecode]
- Dengan file konfigurasi my.cnf
buka file my.cnf dengan nano atau vim:
[sourcecode]
[mysqld]
...
slow_query_log = /var/log/mysql/mysql-slow.log
long_query_time = 10
log_queries_not_using_indexes = YES
[/sourcecode]
dan simpan.
TIPS:
Jika 10 detik dalam value
long_query_time terlalu singkat (karena memang banyak query wajar yang ada dalam rentang 10 detik), silakan ubah ke 25 atau 50 atau yang lain.
Untuk mencatat semua log, ubah long_query_time jadi 0.