[MySQL] Dauer der Abfrage ausgeben

Hallo,
kann ich über die Konsole lediglich die Dauer einer Abfrage ausgeben?
Ich möchte also nicht das mir die Daten von der Abfrage aufgelistet werden, sondern nur die Zeit die für die Abfrage benötigt wird.

Danke für Hilfe

Gruß

Marcel

P. S. Mysql 5.x unter Windows

Hallo,
ich glaube ich habe die Lösung schon gefunden,
mit LIMIT 0,0 am Ende der Abfrage erhalte ich die gleiche Zeitspanne wie bei der Ausgabe von 50 Datensätzen…

Viell. kann das ja jemand bestätigen oder es gibt eine elegantere Lösung.

Gruß

Marcel

Hallo Marcel,

mit LIMIT 0,0 am Ende der Abfrage erhalte ich die gleiche
Zeitspanne wie bei der Ausgabe von 50 Datensätzen…
Viell. kann das ja jemand bestätigen oder es gibt eine
elegantere Lösung.

Ich kann es jedenfalls nicht bestätigen und dein Ergebnis wundert mich auch etwas. Bei LIMIT 0 weiss MySQL, daß es nur einen leeren Datensatz ausgeben muss und das geht natürlich in Nullkommanix. Hier mein etwas größeres Testbeispiel:

select autor from books;
11499 rows in set (0.03 sec)

Jetzt nochmal mit LIMIT 0:
select autor from books limit 0;
Empty set (0.00 sec)

Eine elegante Lösung habe ich nicht, aber es kommt auch ein wenig drauf an, was Du damit bezweckst. Die Ausgabe der Zeit hast Du ja eigentlich immer mit dabei.
Ich könnte mir als einen Ansatz eine temporäre Tabelle mit zwei Spalten vorstellen, anfang u. ende. anfang befüllst Du vor dem eigentlichen SELECT mit now() und ende ebenso nach dem SELECT. Dann gibst Du mit TIMEDIFF die Differenz zwischen beiden aus und hast so ungefähr die Zeitdauer der Abfrage.

Viele Grüße
Marvin

Hi,
danke für die schnelle Antwort,
hab jetzt auch mal nen Test gemacht,

180480 rows -\> 6,33 sec
 10 rows -\> 5,33 sec
 1 row -\> 5,09 sec
 empty set -\> 0,64 sec

Somit bekomme ich so zumindest mit einer geringen Limit-Einstellung einen annähernden Wert. Wenn ich kein Limit setzte warte ich halt immer ewig auf die Ausgabe in der Konsole.

Mal schauen, viell. gibt’s ja noch was besseres.

Gruß

Marcel