22 Mei 2009

Slow Query Log MySQL

Slow Query Log pada MySQL berisi semua query SQL yang dijalankan (waktu eksekusi) melebihi selang waktu tertentu. Selang waktu yang dimaksud ditentukan pada variabel sistem server MySQL (mysqld). Saat menjalankan instance MySQL (mysqld.exe), terdapat pilihan long_query_time, yang digunakan untuk pengecekan apakah akan menulis ke log atau tidak. Isi dari pilihan tersebut merupakan nilai dalam detik, jika suatu query yang dikirim dari client dijalankan selama selang waktu lebih dari yang ditentukan dari pilihan long_query_time, maka query yang bersangkutan akan ditulis ke file log. Sebelum MySQL 5.1.21 nilai minimum dari pilihan long_query_time adalah 1 dan harus tipe integer, mulai MySQL 5.1.21 nilai minimum adalah 0 dan dimungkinkan mengisi nilai mikro detik, tapi hanya nilai integer yang diambil dan ditulis ke tabel jika tujuan penulisan log adalah ke tabel.
Sebelum MySQL 5.1.6 log selalu ditulis ke sebuah file. Mulai MySQL 5.1.6 dimungkinkan untuk menulis ke file, tabel atau keduanya. Untuk mengaktifkan Slow Query Log, gunakan parameter --log-slow-queries[=file_name]. Pilihan ini digunakan sebelum MySQL 5.1.29, mulai MySQL 5.1.29 gunakan pilihan --slow-query-log. Nilai dari pilihan ini bisa 0 (tidak aktif) atau 1 (aktif). Jika tujuan penulisan file log adalah ke file, gunakan pilihan --slow-query-log-file[=file_name]. Tujuan penulisan log bisa ditentukan dengan pilihan --log-output yang bisa berisi nilai TABLE, FILE atau NONE (tidak menulis log). Jika tujuan penulisan ke tabel, maka tabel tujuan adalah mysql.slow_log. Misalnya:
--log-output=TABLE
--log-output=FILE
--log-output=TABLE,FILE
Bisa juga dengan melakukan pengaturan file konfigurasi MySQL (my.ini).
[mysqld]
slow-query-log=1
log-output=FILE
slow-query-log-file="C:/Program Files/MySQL/MySQL 5.1/slowlog.log"

Catatan: Penulisan tanda - atau _ pada yang digunakan sebagai penghubung tiap kata (pada parameter maupun file konfigurasi MySQL) dapat digunakan untuk hasil yang sama. Parameter-parameter berikut memiliki arti dan hasil yang sama.
--log-output=TABLE
--log_output=TABLE

Tidak ada komentar:

Posting Komentar