Heim >Datenbank >MySQL-Tutorial >Warum ist meine MySQL-Abfrage trotz eines Index so langsam?

Warum ist meine MySQL-Abfrage trotz eines Index so langsam?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-19 14:59:02353Durchsuche

Why is My MySQL Query So Slow, Even with an Index?

MySQL-Anweisungsausführungszeit zu hoch

Beim Versuch, Abfragen in einer großen Datenbank mit etwa 1 Million Datensätzen auszuführen, kam es zu längeren Ausführungszeiten. Insbesondere war eine Abfrage zum Abrufen von Datensätzen aus der Tabelle „Bewertungen“ besonders langsam:

select * from `ratings` order by id limit 499500, 500

Obwohl ein Index für die Spalte „id“ verwendet wurde, blieb das Problem bestehen. Die Reduzierung der Tabellengröße auf 10.000 Datensätze führte jedoch zu deutlich schnelleren Abfragezeiten.

Erklärung:

Bei der Untersuchung des Abfrageplans mithilfe der „EXPLAIN“-Anweisung war dies der Fall ergab, dass die ursprüngliche Abfrage einen vollständigen Tabellenscan verwendete, was zu einer ineffizienten Ausführung führte. Im Gegensatz dazu wurde beim Hinzufügen einer „Where“-Klausel ein effizienterer Bereichsindex-Scan verwendet, was die Leistung erheblich verbesserte.

select * from `ratings` where id>=499501 limit 500

Überlegungen:

Verwendung von a Die „where“-Klausel zum Filtern der Ergebnisse kann die Abfrageleistung durch die Verwendung geeigneter Indizes erheblich verbessern.

Es ist wichtig sicherzustellen, dass innerhalb der keine Deadlocks auftreten Datenbank, was auch zu einer langsamen Abfrageausführung führen kann.

Das obige ist der detaillierte Inhalt vonWarum ist meine MySQL-Abfrage trotz eines Index so langsam?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn