Weil ich ein Python-Programm geschrieben und intensiv mit einer Mysql-Bibliothek gearbeitet habe. Als die Datenmenge nicht groß war, habe ich nicht bemerkt, dass es sehr langsam war. Später wurde es immer langsamer. Ich dachte, es läge nur an der großen Datenmenge. Aber später wurde es so langsam, dass ich es nicht mehr ertragen konnte. Ich habe lange nachgesehen und alle Indizes verwendet, die verwendet werden konnten. Trotzdem dauerte eine einmalige Ausführung 3 bis 4 Sekunden, was unerträglich war. Daher habe ich alle Abfragen, die mit Redis zwischengespeichert werden konnten, zwischengespeichert, was die Anwendung erheblich beschleunigt hat. Es gibt jedoch immer noch einige Dinge, die nicht zwischengespeichert werden können. Anders ausgedrückt: Es gibt keine Möglichkeit, sie zwischenzuspeichern, wenn bei jeder Abfrage die Ergebnisse anders sind. Mithilfe der Abfrageübersicht von Navicat können wir erkennen, dass der hängende Teil im Abschnitt „Daten senden“ liegt, der 3,5 Sekunden dauert und 99 % der Abfragezeit ausmacht. Ich habe online einige Informationen überprüft und festgestellt, dass einige davon auf Probleme mit SQL-Anweisungen zurückzuführen waren, aber ich habe varchar oder die In-Methode überhaupt nicht verwendet. Ich dachte also, die Tabelle sei vielleicht zu groß und nicht im Speicher zwischengespeichert. Also überprüfte ich den vom mysqld-Prozess belegten Speicher. Er betrug nur mehr als 50 MB, was offensichtlich zu wenig war. Die tatsächliche Kapazität der Tabelle betrug mehr als 200 MB, was in der Objektspalte von Navicat zu sehen ist. Jede Abfrage muss von der Festplatte gelesen werden, was sehr zeitaufwändig ist. Also überprüfte ich die Festplatten-E/A von Win10 und stellte fest, dass dies tatsächlich der Fall war. Die Festplatten-E/A erreichte 100 % und es handelte sich um ein Solid-State-Laufwerk mit einer Lesegeschwindigkeit von etwa 80 MB pro Sekunde. Kein Wunder, dass es so langsam war. Also habe ich die MySQL-Konfigurationsdatei überprüft und festgestellt, dass nur eine Konfiguration von 32 MB vorhanden war. Ich habe sie auf 512 MB angepasst und MySQL neu gestartet. Diesmal wurde die Zeit von 3,5 Sekunden auf 0,76 Sekunden reduziert. Die Konfigurationselemente sind: innodb_buffer_pool_size=32M Dies ist die Standardeinstellung für MySQL 5.7. Ändern Sie den Wert je nach Hardwarekonfiguration auf 512 oder 1024 und starten Sie neu. Zusammenfassen Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Wenn Sie mehr darüber erfahren möchten, schauen Sie sich bitte die folgenden Links an Das könnte Sie auch interessieren:
|
<<: Zusammenfassung der Linux-Befehle zur Dateiverzeichnisverwaltung
>>: Beheben Sie den Fehler bei der Installation von VMware Tools unter Ubuntu 18.04
Inhaltsverzeichnis 1. Objektmethoden definieren 2...
Inhaltsverzeichnis Lassen Sie uns zunächst kurz P...
MySQL 8.0 für Windows v8.0.11 offizielle kostenlo...
1. haslayout und bfc sind IE-spezifische und Stand...
Inhaltsverzeichnis Überblick Build-Prozess Verwan...
Wie unten dargestellt: XML/HTML-CodeInhalt in die...
Ich möchte C/C++ verwenden, um grundlegende Daten...
Inhaltsverzeichnis 1. Lvs-Einführung 2. Lvs-Lasta...
Inhaltsverzeichnis Erster Blick Erstellen einer V...
Durch die Anwendung können einige öffentliche Bere...
brauchen Wenn Sie ein Feld abfragen, müssen Sie e...
Inhaltsverzeichnis Prozesskommunikation Bidirekti...
Wie unten dargestellt: SELECT Anzahl(DISTINCT(a.r...
Hintergrund Apropos MySQL-Deadlock: Ich habe bere...
In diesem Artikel werden hauptsächlich drei Metho...