Heim >Datenbank >MySQL-Tutorial >Wie kann eine Datenbankrestrukturierung eine langsame MySQL-Abfrage optimieren und Festplatten-E/A eliminieren?
Optimierung von MySQL-Abfragen, um die Ausführungszeit zu reduzieren und Festplatten-E/A zu eliminieren
In einem typischen Webanwendungsszenario die Leistung einer Datenbankabfrage ist von entscheidender Bedeutung, um eine reaktionsfähige Benutzererfahrung aufrechtzuerhalten. Dieser Artikel befasst sich mit einer bestimmten MySQL-Abfrage, die langsame Ausführungszeiten aufwies, was zu einer schlechten Website-Leistung führte.
Die betreffende Abfrage verknüpft drei Tabellen: „poster_data“, „poster_categories“ und „poster_prodcat“. Ziel ist es, Daten aus den Tabellen basierend auf einer bestimmten Bedingung in der Tabelle „poster_prodcat“ abzurufen. Der Abfrageausführungsplan ergab die Beteiligung der Tabelle „poster_prodcat“ und deren Schreiben auf die Festplatte, was auf einen ineffizienten Datenabruf hindeutet.
Um das Leistungsproblem zu beheben, haben wir einen alternativen Ansatz untersucht, der eine Umstrukturierung der Datenbank und der Abfragen beinhaltet. Konkret haben wir neue Tabellen mit den Namen „poster“, „category“ und „poster_category“ erstellt. Die Tabelle „poster_category“ wurde mit einem gruppierten zusammengesetzten Index für die Spalten (cat_id, poster_id) entworfen.
Mit diesem neuen Schema haben wir die ursprüngliche Abfrage wie folgt umgeschrieben:
SELECT p.*, c.* FROM poster_category pc INNER JOIN category c ON pc.cat_id = c.cat_id INNER JOIN poster p ON pc.poster_id = p.poster_id WHERE pc.cat_id = 623 ORDER BY p.name LIMIT 32;
Die Der EXPLAIN-Plan für die neu geschriebene Abfrage zeigt eine deutliche Leistungsverbesserung. Die Abfrage nutzt nun Indizes effektiv, wodurch der Bedarf an Festplatten-E/A reduziert und die Ausführungszeit minimiert wird.
Das obige ist der detaillierte Inhalt vonWie kann eine Datenbankrestrukturierung eine langsame MySQL-Abfrage optimieren und Festplatten-E/A eliminieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!