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
JSON (JavaScript Object Notation, JS Object Notat...
Im vorherigen Artikel haben wir die einfache Erke...
Vor Kurzem musste ich den Server erneut einem Str...
Studierende, die Ansible verwenden, wissen, dass ...
Auf dem heimischen Markt besteht noch immer ein g...
Inhaltsverzeichnis Problem 1: Zerstörung 1. Wie m...
Inhaltsverzeichnis 1.1Tinyint-Typbeschreibung 1.2...
Dieser Artikel beschreibt den detaillierten Vorga...
<br />Original: Progressive Enhancement vers...
Inhaltsverzeichnis Problembeschreibung Lösung Pro...
In diesem Artikelbeispiel wird der spezifische Co...
Inhaltsverzeichnis 1. Typ des Operators 2. Instan...
1. Verwenden Sie das Tag <a> zum Vervollstä...
Gemeinsame Eigenschaften von Tabellen Die grundle...
nginx Übersicht nginx ist ein kostenloser, quello...