Terkadang, satu kueri SQL dapat menjadi penyebab semua masalah server. MySQL memiliki fungsionalitas bawaan untuk menangkap log kueri lambat atau mengidentifikasi kueri yang tidak optimal dan membutuhkan waktu lama untuk diselesaikan, yang memungkinkan Anda untuk mencatat semua kueri yang berjalan lambat yang membutuhkan waktu beberapa detik untuk dieksekusi oleh mesin basis data MySQL ke mengajukan. Log kueri lambat tidak diaktifkan atau diaktifkan oleh instalasi MySQL default, sehingga ini adalah salah satu log yang jarang digunakan.
Untuk mengaktifkan log kueri lambat, cukup tambahkan baris berikut ke file konfigurasi MySQL (my.cnf atau my.ini), lalu restart server MySQL:
log-slow-queries
Atau,
log-slow-queries = [path to the log file]
Ganti [jalur ke file log] dengan jalur aktual ke file log kueri lambat yang Anda inginkan agar MySQL menulis log, yang merupakan nilai opsional.
Atau Anda dapat memulai mysqld dengan –log-slow-queries[=file_name] opsi untuk mengaktifkan log kueri lambat. Dalam kedua sintaks, jika tidak ada nama file log yang ditentukan, nama defaultnya adalah host_name -slow.log, disimpan di direktori file data MySQL. Jika nama file diberikan, tetapi bukan sebagai nama path absolut, server juga menulis file dalam direktori data.
Setelah mengaktifkan log kueri lambat, MySQL akan membuat, menangkap, dan masuk ke file log dengan semua pernyataan SQL yang memakan waktu lebih dari long_query_time detik untuk dieksekusi, yang secara default disetel ke 10 detik . Waktu untuk memperoleh kunci tabel awal tidak dihitung sebagai waktu eksekusi. mysqld menulis pernyataan ke log kueri lambat setelah dieksekusi dan setelah semua kunci dilepaskan, jadi urutan log mungkin berbeda dari urutan eksekusi.
Anda kemudian dapat memeriksa semua kueri SQL lambat di file log, dan kemudian mengambil langkah-langkah yang diperlukan untuk mengoptimalkan pernyataan SQL. Log kueri lambat akan memberi tahu Anda tentang jam berapa kueri selesai, berapa lama kueri dijalankan, berapa lama waktu yang dibutuhkan untuk mengamankan kuncinya, berapa banyak baris yang dikirim kembali sebagai hasilnya, berapa banyak baris yang diperiksa untuk menentukan hasil, database mana yang digunakan, dan kueri aktual itu sendiri. Namun perlu diingat bahwa kueri SQL yang terdapat dalam log mungkin sudah optimal, tetapi dijalankan dengan lambat karena sumber daya sistem telah digunakan oleh pernyataan lambat yang sebenarnya yang perlu disesuaikan.