Durch Aktivieren von "log_queries_not_using_indexes" wird "long_query_time" deaktiviert?

13

Ich bemerkte , dass, in Mysql, bei der Aktivierung log_queries_not_using_indexes, slow_query_logund long_query_timedas erzeugte langsame Abfrage Protokolldatei viele Anfragen , auch wenn die Abfragezeit weit weniger enthalten als long_query_time.

Es scheint, dass log_queries_not_using_indexesMysql , sobald das aktiviert ist, alle Abfragen protokolliert, die keine Indizes verwenden, unabhängig von der "long_query_time".

Gibt es eine Möglichkeit, dies zu überwinden? Ich meine, gibt es eine Möglichkeit, alle Abfragen zu protokollieren, die länger dauern als long_query_time, unabhängig davon, ob sie Indizes verwenden?

coolcfan
quelle

Antworten:

27

Das ist erwartetes Verhalten. Lesen Sie die Online-Dokumentation, aber zusammenfassend:

  • long_query_timeist der Schwellenwert für die Ausführungszeit der Abfrage, nach deren Ablauf sie protokolliert wird. Alle Abfragen, die länger als der Schwellenwert dauern, werden protokolliert, unabhängig davon, ob sie einen Index verwenden oder nicht.

  • log_queries_not_using_indexesWeist MySQL an, zusätzlich alle Abfragen zu protokollieren, die keinen Index verwenden, um die Anzahl der durchsuchten Zeilen zu begrenzen. Die Anmeldung unter dieser Bedingung erfolgt unabhängig von der Ausführungszeit.

Hoffe, das hilft zu erklären, was Sie sehen. Anscheinend möchten Sie wahrscheinlich nur long_query_timeund nicht, log_queries_not_using_indexes wenn Ihr Ziel darin besteht, nur Abfragen zu erfassen, die länger als ein bestimmter Schwellenwert dauern.

Doc-Links: http://dev.mysql.com/doc/refman/5.5/de/server-options.html#option_mysqld_log-queries-not-using-indexes

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

Drogart
quelle
5
MySQL sollte es ermöglichen, jede dieser beiden Arten von Abfragen in einer eigenen Datei zu protokollieren. Ich habe mir eine Technik ausgedacht, um die Zeilen zu finden, in denen die Abfragezeit aufgeführt ist. Dadurch ist es einfach, visuell nach langsamen Abfragen zu suchen, aber es wäre besser, separate Dateien zu haben.
Night Owl
Was bedeutet es, wenn hier besonders erwähnt wird: "Diese Bedingung wird unabhängig von der Ausführungszeit protokolliert." ?
user10089632
@ user10089632 Lesen Sie das Dokument unter dem ersten Link oben.
Dezso