Wie kann ich die Ausführungszeit einer Abfrage messen, ohne die Wartezeit auf eine Sperrfreigabe usw. zu messen? Meine einzige Idee war es, dieselbe Abfrage kontinuierlich zu messen und die schnellste Zeit aufzuzeichnen.
Antworten:
Starten Sie den Profiler mit
SET profiling = 1;
Führen Sie dann Ihre Abfrage aus.
Mit
SHOW PROFILES;
Sie sehen eine Liste der Abfragen, für die der Profiler Statistiken hat. Und schließlich wählen Sie aus, mit welcher Abfrage Sie prüfen möchten
SHOW PROFILE FOR QUERY 1;
oder welche Nummer auch immer Ihre Anfrage hat.
Sie erhalten eine Liste, in der genau angegeben ist, wie viel Zeit während der Abfrage verbracht wurde.
Weitere Infos im Handbuch.
sending data
. Oder was auch immer nötig ist, um die Leistung zu verbessern. Ich sehe keinen Grund darin, Benutzer wissen zu lassen, warum sie so lange warten müssen. Es ist ihnen eigentlich egal.
Die akzeptierte Antwort wird ungültig ...
SHOW PROFILE[S]
sind ab MySQL 5.6.7 veraltet und werden in einer zukünftigen MySQL-Version entfernt. Verwenden Sie stattdessen das Leistungsschema. Siehe http://dev.mysql.com/doc/refman/5.6/en/performance-schema-query-profiling.html
show profiles
richtig