Szenario kurz: Eine Tabelle mit mehr als 16 Millionen Platten [2 GB groß]. Je höher LIMIT mit SELECT-Offset, desto langsamer ist die Abfrage wird bei der Verwendung von ORDER BY * primary_key *Warum verlangsamt MYSQL höheren LIMIT-Offset die Abfrage?
So
SELECT * FROM large ORDER BY `id` LIMIT 0, 30
nimmt weit weniger als
SELECT * FROM large ORDER BY `id` LIMIT 10000, 30
dass nur Aufträge 30 Datensätze und gleiche in jedem Fall. Es ist also nicht der Overhead von ORDER BY.
Wenn nun die letzten 30 Zeilen abgerufen dauert es etwa 180 Sekunden. Wie kann ich diese einfache Abfrage optimieren?
HINWEIS: Ich bin der Autor. In den obigen Fällen bezieht sich MySQL nicht auf den Index (PRIMARY). den folgenden Link von Benutzer "Quassnoi" zur Erklärung. – Rahman
mögliches Duplikat von [Wie kann ich eine MySQL-Abfrage mit einem großen Offset in der LIMIT-Klausel beschleunigen?] (Http://stackoverflow.com/questions/1243952/how-can-i-speed-up-a-mysql- Query-mit-einem-großen-Offset-in-the-Limit-Klausel) –