Die Leistung Ihrer Website oder Ihres Dienstes hängt weitgehend vom Design Ihrer Datenbank ab (vorausgesetzt, Sie wählen das richtige Framework für die Sprachentwicklung) und davon, wie Sie die Daten abfragen. Wir kennen die Methoden zur Leistungsoptimierung von MySQL, zu denen im Allgemeinen das Erstellen von Indizes, das Vermeiden komplexer gemeinsamer Abfragen, das Festlegen redundanter Felder, das Erstellen von Zwischentabellen, Abfrage-Cache usw. gehören. Wir wissen auch, wie man mit EXPLAIN den Ausführungsplan anzeigt. Über den Ausführungsprozess und die internen Mechanismen komplexer MySQL-Abfrageanweisungen, die vom MySQL Optimizer selbst vorgenommenen Optimierungen sowie die Auswirkungen von Anpassungen der Abfrageanweisungen auf die Leistung und deren Ursachen ist jedoch wenig bekannt. In diesem Artikel wird versucht, einige Schlüsselkonzepte wie den Ausführungsprozess und die Indexverwendung eingehender zu erörtern, um das Warum und Warum zu verstehen. Dadurch kann ein blinder Wechsel zu NoSQL-Speicher oder die Investition in Infrastrukturupgrades vermieden werden, wenn durch eine einfache MySQL-Optimierung gute Ergebnisse erzielt werden können. Wenn Sie Ihre Arbeit gut machen möchten, müssen Sie zuerst Ihre Werkzeuge schärfen. Hier stellen wir zunächst das Tool zur Leistungsanalyse von MySQL-Abfrageanweisungen vor. Der EXPLAIN-Befehl von MySQL ist ein Tool zur Analyse der Abfrageleistung. Jede Zeile der EXPLAIN-Ausgabe entspricht der Ausführungsplanbeschreibung einer Tabelle in der Abfrageanweisung. Die Bedeutung der Ausgabespalten ist wie folgt: Die Typspalte in der obigen Tabelle ist der Tabellenassoziationstyp. Gängige Typen sind die folgenden (von hoch nach niedrig sortiert, je nach Effizienz der Assoziationsabfrage):
Die Schlüsselspalte stellt den Index dar und die Zeilen stellen die geschätzte Anzahl der zu scannenden Zeilen dar. Extra gibt zusätzliche Informationen an. Häufige sind die folgenden (ebenfalls in absteigender Reihenfolge der Abfrageeffizienz angeordnet):
Wenn die folgenden beiden Meldungen (Using filesort, Using temporary) in EXPLAIN erscheinen und die Zeilen relativ groß sind, bedeutet dies normalerweise, dass Sie die Abfrageanweisung anpassen oder einen Index hinzufügen müssen. Kurz gesagt, Sie müssen versuchen, diese beiden Meldungen zu vermeiden. Nachfolgend sehen Sie ein Beispiel für EXPLAIN-Ergebnisse (Suchen nach Spitznamen und Geschlechtern aus der Benutzerprofiltabelle, Sortieren nach der Anzahl der Benutzer-Follower in der Benutzertabelle): Die obige Abfrageanweisung ist ein typischer Problemfall. Die spezifische Bedeutung von „Using filesort“ und „Using temporary“ sowie die Optimierung der obigen Anweisung werden im nächsten Artikel im Zusammenhang mit dem Abfrageprozess und den Prinzipien erläutert. Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird Ihnen hilfreich sein. Wenn Sie weitere Fragen haben, können Sie uns gerne eine Nachricht hinterlassen. Bitte schauen Sie weiterhin bei 123WORDPRESS.COM vorbei! Das könnte Sie auch interessieren:
|
<<: Detailliertes Tutorial zum Erstellen einer privaten Nextcloud-Cloud-Speichernetzwerkfestplatte
>>: Die vue-cli-Konfiguration verwendet den vollständigen Prozessdatensatz von Vuex
Nach vielen schwierigen Einzelschritt-Debuggings ...
In diesem Artikel wird der spezifische Code von j...
1. Warum einen Index erstellen? (Vorteile) Dies l...
Inhaltsverzeichnis Was ist ein Auslöser Erstellen...
Ich weiß nicht warum, aber UI gestaltet gerne Wab...
React Native implementiert die Überwachungsgeste ...
Inhaltsverzeichnis Vorwort Generierung eines Redo...
Um zu vermeiden, dass für den Betrieb immer wiede...
In diesem Artikel finden Sie das grafische Tutori...
Es gibt einige Probleme, die nicht auf Vue beschr...
Docker zugrunde liegende Technologie: Die beiden ...
1. Laden Sie das komprimierte Tomcat-Paket von de...
Heute werde ich die grundlegendsten Funktionen von...
selinux ( Security-Enhanced Linux) ist ein Linux-...
Dokumentation zur Zabbix-Bereitstellung Nach der ...