Auswirkungen eines höheren LIMIT-Offsets auf die MySQL-Abfragegeschwindigkeit
Beim Abfragen einer großen MySQL-Tabelle mit einem zunehmenden LIMIT-Offset in Verbindung mit ORDER BY, Für Benutzer kann es zu einer erheblichen Verlangsamung der Abfragegeschwindigkeit kommen. Dies wird besonders deutlich, wenn die Tabelle 16 Millionen Datensätze überschreitet oder etwa 2 GB groß ist.
Zum Beispiel wird die folgende Abfrage mit einem kleinen Offset deutlich schneller ausgeführt als die mit einem größeren Offset:
SELECT * FROM large ORDER BY `id` LIMIT 0, 30
SELECT * FROM large ORDER BY `id` LIMIT 10000, 30
Obwohl beide Abfragen nur 30 Zeilen abrufen, dauert Letzteres trotz des vernachlässigbaren Overheads von ORDER wesentlich länger BY.
Um dieses Szenario zu optimieren, sollten Sie einen alternativen Ansatz in Betracht ziehen:
SELECT * FROM large WHERE `id` > lastId LIMIT 0, 30
Durch die konsequente Beibehaltung eines Null-Offsets wird die Abfrage stets mit optimaler Geschwindigkeit ausgeführt, selbst wenn große Datenmengen in Iterationen abgerufen werden.
Das obige ist der detaillierte Inhalt vonWarum sind MySQL-Abfragen mit großen LIMIT-Offsets so langsam?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!