ich eine lange Zeit damit verbracht habe versucht, herauszufinden, warum diese Abfrage meinem Server tötet:Abfrage unter 1781s -
# Query_time: 1781.559941 Lock_time: 0.000060 Rows_sent: 0 Rows_examined: 7576453128
SET timestamp=1460479284;
SELECT r.user
FROM questions q, results r
WHERE r.user = 0
AND r.user=q.user
GROUP BY q.user
LIMIT 1;
Es gibt 9.891.888 Aufzeichnungen in results
und vielleicht Aufzeichnungen in questions
.
Meiner Meinung nach ergibt das keinen Sinn.
Ich habe Indizes auf user
in beiden Tabellen eingerichtet.
Verwenden Sie "on" beim Verbinden der beiden Tabellen und überprüfen Sie die Ausführungszeit der Abfrage –
Wie viel Zeit haben Sie also mit EXPLAIN für diese Abfrage verbracht, um zu sehen, wie sie von MySQL ausgeführt wird? –
Leistungsfragen sollten "EXPLAIN ANALYSE" und einige Informationen über Tabellengröße, Index, aktuelle Zeitleistung, Wunschzeit usw. enthalten. "Langsam" ist ein relativer Begriff und wir brauchen einen echten Vergleichswert. [** MySQL **] (http://dba.stackexchange.com/questions/15371/how-do-i-get-the-execution-plan-for-a-view) –