VorwortEs gibt viele Faktoren, die die Laufgeschwindigkeit eines Systems beeinflussen. Sie sind vielschichtig und können sogar zufällig sein, sei es das Front-End, das Back-End, die Datenbank, die Middleware, der Server, das Netzwerk usw. Um ein Problem wirklich zu lokalisieren, müssen Sie ein gewisses Verständnis des Systems haben und in der Lage sein, den Umfang des Problems nach eigenem Ermessen einzugrenzen. Heute werde ich nicht über andere Optimierungen sprechen, sondern mich auf die Datenbankoptimierung konzentrieren und verschiedene Optimierungsrichtungen diskutieren. Wie die Optimierungsrichtung des Systems ist auch die Optimierung der Datenbank vielschichtig und umfasst die Ausführung von SQL-Anweisungen, die Situation der Datenbank selbst usw. Als Nächstes werden wir über die Optimierungsrichtung langsamer SQL-Anweisungen in der MySQL-Datenbank sprechen und hoffen, Ihnen einige Optimierungsideen zu geben. SQL-AnweisungsoptimierungEs gibt viele Artikel zur Optimierung von SQL-Anweisungen und auch viele Anleitungen zum Schreiben von SQL. Diese können jedoch nur die grundlegende Entwicklung unterstützen. Wenn Sie Probleme beheben möchten, können Sie sich nicht nur auf das Schreiben von SQL beschränken, sondern müssen einen umfassenden Prozess zur Problemerkennung verwenden. Die Optimierungsrichtung dieses Mal ist grob in mehrere Aspekte unterteilt, z. B. das Erkennen langsamer SQL-Abfragen, das Anzeigen und Analysieren des SQL-Ausführungsplans, das Optimieren des SQL-Schreibens und die Indexoptimierung. Langsame SQL-Abfragen aufzeichnenDas Protokollieren langsamer SQL-Abfragen in MySQL kann durch die Verwendung der internen MySQL-Konfiguration erreicht werden, bei der es sich um die slow_query_log-Konfiguration handelt. Sie können Showvariablen wie „%query%“ verwenden, um die folgenden drei zugehörigen Ergebnisse abzufragen. lange Abfragezeit | 1,00000 slow_query_log | aus slow_query_log_file | /data/mysql/mysql_slow.log Erklären Sie diese drei Parameter.
So ändern Sie die KonfigurationEs gibt zwei Methoden. Erstens: Ändern Sie die Datei my.ini oder my.cnf und konfigurieren Sie diese drei Konfigurationen als eine. Zweitens: Verwenden Sie die festgelegte Syntax, um die Parameter direkt in SQLPlus zu ändern. Nach einem Neustart der MySQL-Datenbank wird diese jedoch ungültig. Das SQL lautet wie folgt: setze globale long_query_time = 10; Setzen Sie global slow_query_log = on; Setzen Sie die globale slow_query_log_file = /data/mysql/mysql_slow.log; Da diese Methode nach dem Neustart fehlschlägt, wird empfohlen, die erste Methode zu verwenden. Anzeigen von Protokollen langsamer AbfragenWie fragt man das langsame Abfrageprotokoll ab? Wenn die Menge gering ist, müssen keine Tools verwendet werden und man kann es einfach direkt öffnen. Wenn die Menge groß ist, ist die Abfrage mit dem Tool mysqldumpslow bequemer. mysqldumpslow ist ein Ausführungsskript vom gleichen Typ wie mysqld und kann direkt in der Befehlszeile ausgeführt werden. Die spezifische Verwendung ist wie folgt:
Beispielsweise wie folgt:
Fragen Sie die fünf langsamen Abfrage-SQLs ab, die die meisten Datensätze zurückgeben. Ich werde eine Testbibliothek erstellen und später einen separaten Artikel schreiben, um die Verwendung genauer zu erklären. SQL-Ausführungsplan anzeigenDen Ausführungsplan anzeigen Schlüsselwörter: EXPLAIN AnwendungFühren Sie einfach EXPLAIN SELECT * FROM TABLE_NAME direkt aus; Ich wollte zunächst nur kurz darauf eingehen, fand es dann aber zu lang und werde es daher für den nächsten Artikel aufheben. Vielen Dank für Ihr Verständnis. SQL-SchreiboptimierungEs gibt viele Möglichkeiten, das Schreiben von SQL zu optimieren. Ich habe hier einige davon aufgelistet. Bitte prüfen Sie und füllen Sie die Lücken selbst aus.
Warum sollten wir langsames SQL verwalten? Aus Datenbanksicht: Jede SQL-Ausführung verbraucht eine bestimmte Menge an I/O-Ressourcen. Die Geschwindigkeit der SQL-Ausführung bestimmt, wie lange die Ressourcen belegt sind. Angenommen, die Gesamtressourcenzahl beträgt 100 und eine langsame SQL-Anweisung belegt insgesamt 1 Minute lang 30 Ressourcen. Dann beträgt während dieser Minute die Gesamtmenge der Ressourcen, die anderen SQL-Anweisungen zugewiesen werden können, 70, und der Zyklus wird fortgesetzt. Wenn alle Ressourcen zugewiesen sind, werden alle neuen SQL-Anweisungen in die Warteschlange gestellt. Aus Anwendungssicht: Eine lange SQL-Ausführungszeit bedeutet Wartezeiten, was zu einer schlechten Benutzererfahrung in OLTP-Anwendungen führt. Governance-Prioritäten
ZusammenfassenDies ist noch lange nicht abgeschlossen. Es gibt noch viele Schreibregeln, und die Erstellung von Indizes wurde noch nicht besprochen. Ich lasse Ihnen etwas Zeit, das Buch selbst zu lesen. Ich hoffe, Sie können Fortschritte machen. Dies ist das Ende dieses Artikels über die Optimierungsrichtung von langsamem SQL in MySQL. Weitere relevante Inhalte zur Optimierungsrichtung von langsamem MySQL-SQL finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Beispiele für die Verwendung von HTML-Listen-Tags dl, ul, ol
Inhaltsverzeichnis 1. Ziehen Sie das Redis-Image ...
Vorwort Kürzlich habe ich einer Tabelle in der Da...
1. Was ist ein berechnetes Attribut? Einfach ausg...
Keepalived+Nginx+Tomcat zur Erzielung eines hochv...
Inhaltsverzeichnis 1. Was ist JavaScript? 2. Wofü...
Inhaltsverzeichnis 1. Zähldaten gehen verloren Lö...
1. Vorbereitung vor der Installation: 1.1 JDK ins...
1. Hörer ansehen Vorstellung der Uhr importiere {...
In diesem Artikel werden hauptsächlich allgemeine...
Dieser Abschnitt bietet einen Überblick über eini...
1. Immobilienliste Code kopieren Der Code lautet w...
zabbix_agent-Bereitstellung: Empfehlung: zabbix_a...
Die folgende Abbildung zeigt die Browser-Anzeiger...
Inhaltsverzeichnis Was ist Vuex? Fünf Eigenschaft...
Vorwort: Weil viele Geschäftstabellen Entwurfsmus...