dedlfix: Abfrage über zwei Tabellen, sort, LIMIT 10, Abfrage dauert 45 Sekunden

Beitrag lesen

Tach!

Wie kann ich die Abfrage so gestalten, dass sie vielleicht erst die letzten 10 ausliest anstatt alle um dann die letzten 10 herzunehmen.


SELECT a.*, b.gemeinde FROM abrufe a, plz b WHERE a.plz=b.plz ORDER BY a.datum DESC LIMIT 10 

Das ist keine Frage der Abfrageformulierung in dem Fall, denn die ist bereits optimal. Vielmehr lässt sich an der Abfrage nichts verbessern, denn wenn du die letzten (oder auch ersten) x Datensätze haben möchtest, muss die Tabelle erstmal sortiert werden, damit es überhaupt feststellen kann, welche Datensätze es sein sollen. Wenn die Datenmenge nun im unsortierten Zustand vorliegt, dauert das dann eben. Um die Datenmenge gleich sortiert vorliegen zu haben, setzt man einen Index auf die betroffene Spalte, hier also das Datum.

dedlfix.