Mengaktifkan "log_queries_not_using_indexes" menonaktifkan "long_query_time"?

13

Saya perhatikan bahwa, di Mysql, ketika mengaktifkan log_queries_not_using_indexes, slow_query_logdan long_query_time, file log kueri lambat yang dihasilkan akan berisi banyak pertanyaan bahkan jika waktu kueri jauh lebih sedikit daripada long_query_time.

Tampaknya begitu log_queries_not_using_indexesdiaktifkan, Mysql akan mencatat semua permintaan yang tidak menggunakan indeks, apa pun "long_query_time" itu.

Apakah ada cara untuk mengatasi ini? Maksud saya, apakah ada cara untuk mencatat semua pertanyaan yang membutuhkan waktu lebih lama long_query_time, terlepas dari apakah mereka menggunakan indeks?

coolcfan
sumber

Jawaban:

27

Itulah perilaku yang diharapkan. Rujuk ke dokumen secara online, tetapi dalam ringkasan:

  • long_query_timeadalah ambang untuk waktu eksekusi permintaan di luar yang itu dicatat. Setiap kueri yang membutuhkan waktu lebih lama dari ambang masuk, terlepas dari apakah mereka menggunakan indeks atau tidak.

  • log_queries_not_using_indexesmemberitahu MySQL untuk mencatat semua kueri yang tidak menggunakan indeks untuk membatasi jumlah baris yang dipindai. Logging pada kondisi ini terjadi terlepas dari waktu eksekusi.

Harapan itu membantu menjelaskan apa yang Anda lihat. Sepertinya Anda mungkin hanya ingin long_query_timedan tidak log_queries_not_using_indexes jika tujuan Anda hanya menangkap kueri yang membutuhkan waktu lebih lama dari batas tertentu.

Tautan dokumen : http://dev.mysql.com/doc/refman/5.5/id/server-options.html#option_mysqld_log-queries-not-using-indexes

http://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html#sysvar_long_query_time

drogart
sumber
5
MySQL harus mengizinkan logging masing-masing dari dua jenis pertanyaan ini ke file mereka sendiri. Saya telah datang dengan teknik untuk menemukan garis-garis di mana waktu kueri terdaftar yang membuatnya mudah untuk memindai secara visual untuk permintaan lambat tetapi akan lebih baik untuk memiliki file terpisah.
Night Owl
apa artinya itu ketika secara khusus disebutkan di sini: "Logging pada kondisi ini terjadi terlepas dari waktu eksekusi." ?
user10089632
@ user10089632 baca dokumen di bawah tautan pertama di atas.
dezso