Log di MySQL meliputi: log kesalahan, log biner, log kueri generik, log kueri lambat, dll. Berikut adalah dua fungsi yang umum digunakan: log kueri umum dan log kueri lambat.
1) Log kueri lambat:Mencatat semua kueri yang dijalankan selama lebih dari long_query_time detik atau yang tidak menggunakan indeks
2) Log kueri umum:Catat koneksi klien yang dibuat dan dieksekusi pernyataan.
1: Tentang kueri lambat MySQL:
Log kueri lambat MySQL adalah sejenis pencatatan yang disediakan oleh MySQL, yang digunakan untuk merekam pernyataan bahwa waktu respons melebihi ambang batas di MySQL, secara khusus mengacu pada SQL dengan waktu berjalan lebih dari long_query_time nilai, yang akan dicatat dalam log kueri lambat (log dapat ditulis ke file atau tabel database, jika persyaratan kinerjanya tinggi, disarankan untuk menulis file). Secara default, database MySQL tidak mengaktifkan log kueri lambat, dan nilai default long_query_time adalah 10 (yaitu, 10 detik, biasanya diatur ke 1 detik), yaitu, pernyataan yang berjalan selama lebih dari 10 detik adalah pernyataan kueri lambat.
Secara umum, kueri lambat terjadi dalam tabel besar (misalnya, tabel memiliki jutaan data), dan bidang kondisi kueri tidak diindeks, saat ini, bidang yang cocok dengan kondisi kueri akan dipindai di seluruh tabel, yang membutuhkan waktu untuk memeriksa long_query_time.
Ini adalah pernyataan kueri yang lambat.
Pertanyaan: Bagaimana cara memeriksa status pembukaan log kueri lambat saat ini?
Masukkan perintah di MySQL:
Parameter berikut terutama dikuasai:
(1) Nilai slow_query_log AKTIF untuk mengaktifkan log kueri lambat, dan OFF adalah untuk mematikan log kueri lambat.
(2) Nilai slow_query_log_file adalah log kueri lambat yang direkam ke file (catatan: nama defaultnya adalah hostname.log, apakah log kueri lambat ditulis ke file yang ditentukan, Anda perlu menentukan format log keluaran dari kueri lambat sebagai file, dan perintah terkait adalah: tampilkan variabel seperti '%log_output%'; untuk melihat format output).
(3) long_query_time menentukan ambang batas untuk kueri lambat, yaitu, jika waktu eksekusi melebihi ambang batas ini, itu adalah pernyataan kueri lambat, dan nilai defaultnya adalah 10 detik.
(4) log_queries_not_using_indexes Jika nilai diatur ke ON, semua kueri yang tidak menggunakan indeks akan dicatat (Catatan: Jika log_queries_not_using_indexes hanya diatur ke ON dan slow_query_log diatur ke OFF, pengaturan tidak akan berlaku saat ini, yaitu pengaturan akan berlaku jika nilai slow_query_log diatur ke ON) , yang umumnya diaktifkan sementara saat performa disetel.
2. Log kueri umum
Jika nilai general_log adalahON aktif, untukOFF ditutup(Dinonaktifkan secara default).
Periksa format output log kueri lambat saat ini, yang dapat berupa FILE (hostname.log yang disimpan dalam file data dalam database digital) atau TABLE (mysql.general_log disimpan dalam database)
(Catatan: Perintah di atas hanya efektif untuk waktu saat ini, ketika restart MySQL tidak valid, jika Anda ingin diterapkan secara permanen, Anda perlu mengkonfigurasi my.cnf)
Rendering output log adalah sebagai berikut:
my.cnf dikonfigurasi sebagai berikut:
general_log=1 #为1表示开启通用日志查询, nilai 0 menunjukkan bahwa kueri log generik ditutup
log_output=FILE,TABLE# Mengatur format keluaran log umum ke file dan tabel
|