Warum sind die "Abfrage-Ausführungszeiten" für Aufrufe so hoch?

7

Ich habe eine grundlegende Ansicht, die eine Liste der Mitglieder und ihrer Benutzerpunkte zeigt. Die Ausgabe der Ansichtsabfrage zeigt, dass die Ausführung dieser Abfrage mehr als 1500 ms dauert.

Abfrageerstellungszeit 24,71 ms

Ausführungszeit der Abfrage 1546,84 ms

Renderzeit anzeigen 88,29 ms

SELECT users.picture AS users_picture, users.uid AS uid, users.name AS users_name, users.mail AS users_mail, users.created AS users_created, userpoints_total.points AS userpoints_total_points, 'user' AS field_data_field_motorcycle_user_entity_type_ Benutzer 'AS field_data_field_address_user_entity_type

FROM {users} users LEFT JOIN {userpoints_total} userpoints_total ON users.uid = userpoints_total.uid WHERE (((users.status <> '0') AND (users.uid NOT IN ('1'))) LIMIT 10 OFFSET 0

Wenn ich diese Abfrage kopiere und in myphpadmin einfüge und dort ausführe, dauert es weniger als 5 ms. Was passiert sonst noch in der "Ausführungszeit"? Ich kann dazu im Web keine gute Hilfe finden.

uwe
quelle

Antworten:

7

Deaktivieren Sie beim Testen unbedingt den Abfragecache SET SESSION query_cache_type = OFF

Der nächste Schritt ist die Ausführung EXPLAINauf dem SQL.

EXPLAIN SELECT users.picture AS users_picture, users.uid AS uid, users.name AS users_name, users.mail AS users_mail, users.created AS users_created, userpoints_total.points AS userpoints_total_points, 'user' AS field_data_field_motorcycle_user_entity_t_ 'user' AS field_data_field_address_user_entity_type

mikeytown2
quelle
3
Vielen Dank! weevilgenius.net/2010/09/mysql-explain-reference hatte eine gute Einführung in EXPLAIN. Es stellt sich heraus, dass wenn ich LEFT JOIN in INNER JOIN ändere, es in ms ziemlich Sekunden läuft. Danke noch einmal!!!
Uwe