MySQL-Dauer und Abrufzeit


83

Ich verwende die MySQL-Workbench. Was ist der Unterschied zwischen Dauer und Abrufzeiten, wenn eine Abfrage ausgeführt wird?

Gibt es auch eine Möglichkeit, die Mikrosekundenoption in MySQL zu aktivieren?


Seltsame Prämie. Alle Antworten sind richtig, aber Sie glauben ihnen einfach nicht? Hier und hier sind genau die gleichen Antworten von Mike Lischke, der für Oracle arbeitet, im MySQL-Forum. Glaubwürdig genug?
Hugo Delsing

Antworten:


155

Abrufzeit - Misst, wie lange das Übertragen der abgerufenen Ergebnisse dauert, was nichts mit der Ausführung von Abfragen zu tun hat. Ich würde es nicht als Option zum Debuggen / Optimieren von SQL-Abfragen betrachten, da die Abrufzeit von der Netzwerkverbindung abhängt, die selbst nichts mit der Abfrageoptimierung zu tun hat. Wenn die Abrufzeit ein Engpass ist, liegt mit größerer Wahrscheinlichkeit ein Netzwerkproblem vor.

Hinweis: Die Abrufzeit kann bei jeder Abfrageausführung variieren.

Dauer Zeit - ist die Zeit, in der die Abfrage ausgeführt werden muss. Sie sollten versuchen, dies zu minimieren, wenn Sie die Leistung von SQL-Abfragen optimieren.

Referenz


5
Denken Sie für Optimierungszwecke daran, dass die Option aktiviert sein query_cache_typemuss OFF, damit das Ergebnis nicht vom Cache beeinflusst wird. Siehe stackoverflow.com/questions/181894/…
Dellasavia

6
Ich stimme zu, dass die Dauer der Wert ist, den Sie normalerweise optimieren möchten, da sie sich direkt auf die Effizienz Ihrer Abfrage bezieht. Eine ungewöhnlich hohe Abrufzeit kann jedoch auch auf wichtige logische Fehler und / oder Ineffizienzen hinweisen. Beispielsweise übertragen Sie möglicherweise mit jeder Abfrage, die der Client zwischenspeichern soll, große Textmengen. Oder Sie geben möglicherweise 100.000 Zeilen zurück, wenn Sie nur 10 erwartet haben.
GrandOpener

1
Guter Punkt @GrandOpener - oder Sie wählen select (*), wenn Sie nur die Zeilen-ID benötigen.
Andrew Lorien

Ich habe den Profiler in MySQL aktiviert und eine Abfrage ausgeführt. Ich habe dann sowohl die Workbench- als auch die Profiler-Ausgabe untersucht. Die von Workbench gemeldete Dauer beträgt 0,373, während die Gesamtdauer des Profilers kaum 0,01 erreicht. Bedeutet dies, dass die Dauerausgabe in Workbench NICHT die Gesamtzeit ist, die MySQL für die Ausführung von Abfragen benötigt?
Meglio

Das scheint nicht richtig zu sein. Ich habe zwei Abfragen, die dieselben Zeilen zurückgeben (15300), aber ihre Statistiken sind immer unterschiedlich. man braucht 14.443 Sek. Dauer / 1111.810 Sek. Abrufen und andere 443.986 Sek. Dauer / 0,0089 Sek. Abrufen jedes Mal. Warum das?
Shahid

15

Die Dauer zeigt die Zeit an, die zum Ausführen der Abfrage benötigt wird, und das Abrufen ist die Zeit, die zum Lesen der Ergebnismenge (Abrufen der Daten) benötigt wird.

Ich bin mir über die Mikrosekunden-Option nicht sicher. Wenn es um Optimierung geht, denken Sie daran: "Vorzeitige Optimierung ist die Wurzel allen Übels."


0

Versuchen Sie, die Mikrosekunde im Menü "Einstellungen" zu aktivieren, und ich habe zuvor eine Frage zur Dauer und Abrufzeit erhalten. Jetzt scheint mir die Antwort zu kommen, dass die Dauer die Ausführungszeit der Abfrage ist und der Abruf die Abrufzeit ist Ergebnis und senden Sie sie an, wo immer Sie wollen. Zum Beispiel erhalte ich eine Abfrage mit einer Dauer von 0,078, aber es dauert 60 Sekunden, um die Daten an meine Website zurückzusenden.


0

Die Ausführungszeit ist die Zeit, die für die Vorbereitung der Abfrage und die Ausführung der Abfrage aufgewendet wurde UND die Abrufzeit ist die Zeit, die für das Abrufen der Zeilenergebnisse aufgewendet wurde

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.