So erhalten Sie SQL-Anweisungen mit Leistungsproblemen 1. Erhalten Sie SQL-Anweisungen mit Leistungsproblemen durch Benutzerfeedback Verwenden Sie langsame Abfrageprotokolle, um SQL-Anweisungen mit Leistungsproblemen abzurufen Lassen Sie uns zunächst die Parameter im Zusammenhang mit langsamen Abfragen vorstellen. 1. slow_query_log startet die benutzerdefinierte Einstellung für das langsame Abfrageprotokoll. Sie können es über die MySQL-Befehlszeile festlegen: set global slow_query_log=on 2. slow_query_log_file gibt den Speicherpfad und die Datei des langsamen Abfrageprotokolls an. Es wird empfohlen, den Protokollspeicher und den Datenspeicher getrennt zu speichern. 3. long_query_time gibt den Schwellenwert für die Aufzeichnung der SQL-Ausführungszeit des langsamen Abfrageprotokolls an. ① Zeichnet alle SQL auf, die die Bedingungen erfüllen 4. log_queries_not_using_indexes Gibt an, ob SQL protokolliert werden soll, das keine Indizes verwendet 5. log_output legt das Speicherformat der langsamen Protokollabfrage fest (wenn Sie es als Datei speichern müssen, ändern Sie es bitte in DATEI). Im Nutzungsprotokoll für langsame Abfragen aufgezeichnete Informationen
Verwenden Sie eine langsame Abfrage, um SQL mit Leistungsproblemen abzurufen Häufig verwendetes Tool zur Analyse langsamer Abfrageprotokolle (mysqldumpslow) Beispiel für ein langsames Abfrageprotokoll Konfigurationseinstellungen für langsame Abfragen Befehlszeilenausführungsparameter zum Anzeigen der Analyseergebnisse
Häufig verwendetes Tool zur Analyse langsamer Abfrageprotokolle (pt-query-digest) Bevor Sie das Tool verwenden können, müssen Sie es zunächst installieren. Wenn Sie es bereits haben, können Sie die folgenden Installationsschritte überspringen. 3. Installieren Sie das Toolkit Ausführen von Befehlen zum Analysieren langsamer Abfrageprotokolle ]# pt-query-digest --user=root --password=redhat --host=127.0.0.1 langsam-mysql > langsam.rep Der gesamte Prozess der Verarbeitung von Abfrageanforderungen durch den MySQL-Server
Die Auswirkungen des Abfragecaches auf die SQL-Leistung
Optimieren der Parameter für den Abfrage-Cache query_cache_type legt fest, ob der Abfragecache verfügbar ist. Hinweis: DEMAND bedeutet, dass in der Abfrageanweisung nur SQL-CACHE und SQL_NO_CACHE verwendet werden, um zu steuern, ob Caching erforderlich ist query_cache_size legt die Speichergröße des Abfragecaches fest query_cache_limit legt den Maximalwert des verfügbaren Speicherplatzes im Abfrage-Cache fest query_cache_wlock_invalidate legt fest, ob zwischengespeicherte Daten zurückgegeben werden sollen, nachdem die Tabelle gesperrt wurde (diese Option ist standardmäßig deaktiviert und wird empfohlen) query_cache_min_res_unit legt den Mindestwert des vom Abfrage-Cache zugewiesenen Speicherblocks fest Gründe, die dazu führen, dass MySQL falsche Ausführungspläne generiert
SQL-Typen, die der MySQL-Optimierer optimieren kann 1. Definieren Sie die Assoziationsreihenfolge der Tabelle neu. Der Optimierer bestimmt die Assoziationsreihenfolge der Tabelle anhand statistischer Informationen. 2. Externe Links in interne Links umwandeln 3. Verwenden Sie äquivalente Transformationsregeln 4. Optimieren Sie count(), min() und max() 5. Konvertieren Sie einen Ausdruck in einen konstanten Ausdruck 6. Verwenden Sie äquivalente Transformationsregeln 7. Unterabfrageoptimierung 8. Optimieren Sie die in()-Bedingung So ermitteln Sie die in den verschiedenen Phasen der Abfrageverarbeitung aufgewendete Zeit Verwenden von Profilen Profilierung festlegen = 1; Profil für Abfrage N anzeigen; Die für jede Phase der Abfrage benötigte Zeit Verwenden Sie das Profil, um die von der Anweisung verbrauchte Zeit anzuzeigen Spezifische SQL-Abfrageoptimierung 1. Verwenden Sie das Prinzip des Master-Slave-Umschaltens, um die Tabellenstruktur einer großen Tabelle zu ändern. Ändern Sie sie beispielsweise jetzt auf dem Slave-Server, führen Sie nach Abschluss der Änderung ein Master-Slave-Umschalten durch und ändern Sie dann die große Tabelle auf dem ursprünglichen Master. Es besteht ein gewisses Risiko. Verwenden Sie den Befehl pt-online-schema-change, um die große Tabelle zu ändern. Der spezifische Vorgang ist in der folgenden Abbildung dargestellt Erklärung der Parameter in der obigen Abbildung
Originalarbeit, bei Nachdruck bitte Quelle angeben Das könnte Sie auch interessieren:
|
<<: Analyse der Implementierungsmethode der Koexistenz von Nginx und Apache unter Linux-Servern
>>: Eine kurze Diskussion über ereignisgesteuerte Entwicklung in JS und Nodejs
1. Installationsprozess MySQL-Version: 5.7.18 1. ...
Der MGR unserer Bank wird Ende des Jahres eingefü...
Inhaltsverzeichnis 1. Neu II. Änderung element-ui...
Effektbild: Implementierungscode: <Vorlage>...
Wenn wir ein Karussell bauen wollen, müssen wir z...
Vorwort: Dieser Artikel basiert auf den Erfahrung...
Das Standardspeicherverzeichnis von MySQL ist /va...
Vorwort Ich arbeite derzeit an einem hochwertigen...
In diesem Artikelbeispiel wird der spezifische Co...
Inhaltsverzeichnis 1. Übersicht 2. nginx.conf 1) ...
Inhaltsverzeichnis Ziel Gedankenanalyse Code-Land...
Code kopieren Der Code lautet wie folgt: <HTML...
Gefühle: Ich bin Backend-Entwickler. Manchmal fühl...
Die Rolle des virtuellen DOM Zunächst müssen wir ...
Inhaltsverzeichnis Anforderung: Abfrage laufender...