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
Inhaltsverzeichnis 1. Einführung in Rechnerfunkti...
Erstellen eines Ordners Verzeichnisstruktur: daba...
Inhaltsverzeichnis 1. Unterschiede zwischen Optio...
Wann ist die Installation durchzuführen? Wenn Sie...
Die Webseite zeigt 403 Forbidden an Nginx (Yum-In...
Gestern habe ich jemandem bei der Installation ei...
Shell-Skript #!/bin/sh # Aktuelles Verzeichnis CU...
Ich bin auf ein Problem gestoßen. Wenn beim Teste...
1. Vor- und Nachteile von Indizes Vorteile: schne...
Viele Konzepte im UI-Design mögen in der Formulie...
Die Position-Eigenschaft Die Positionseigenschaft...
In diesem Artikel erkläre ich ausführlich, wie ma...
Socat muss vor der Installation von rabbitmq inst...
Inhaltsverzeichnis Als globale Variable Variables...
Inhaltsverzeichnis 1. Software- und Systemabbild ...