¿Habilitar "log_queries_not_using_indexes" deshabilita "long_query_time"?

13

Noté que, en Mysql, cuando se habilita log_queries_not_using_indexes, slow_query_logy long_query_timeel archivo de registro de consultas lento generado contendrá muchas consultas incluso si el tiempo de consulta es mucho menor que long_query_time.

Parece que una vez que log_queries_not_using_indexesestá habilitado, Mysql registrará todas las consultas que no usen índices, sin importar cuál sea el "tiempo_consulta_ larga".

¿Hay una manera de superar esto? Quiero decir, ¿hay alguna forma de registrar todas las consultas que demoran más tiempo long_query_time, independientemente de si están utilizando índices?

coolcfan
fuente

Respuestas:

27

Ese es el comportamiento esperado. Consulte los documentos en línea, pero en resumen:

  • long_query_timees el umbral para el tiempo de ejecución de la consulta más allá del cual se registra. Se registran todas las consultas que tarden más que el umbral, independientemente de si usan un índice o no.

  • log_queries_not_using_indexesle dice a MySQL que registre adicionalmente todas las consultas que no usan un índice para limitar el número de filas escaneadas. El inicio de sesión en esta condición ocurre independientemente del tiempo de ejecución.

Espero que eso ayude a explicar lo que estás viendo. Parece que probablemente solo quieres long_query_timey no log_queries_not_using_indexes si tu objetivo es capturar solo consultas que demoran más de un umbral en particular.

Enlaces al documento: http://dev.mysql.com/doc/refman/5.5/en/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
fuente
55
MySQL debería permitir registrar cada uno de estos dos tipos de consultas en su propio archivo. Se me ocurrió una técnica para encontrar las líneas donde se enumera el tiempo de consulta, lo que facilita el escaneo visual de las consultas lentas, pero sería mejor tener archivos separados.
Night Owl
lo que significa es cuando se menciona particularmente aquí: "Iniciar sesión en esta condición ocurre independientemente del tiempo de ejecución". ?
user10089632
@ user10089632 lee el documento en el primer enlace de arriba.
dezso