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
Vor Kurzem musste ich den Server erneut einem Str...
Dieser Artikel beschreibt, wie mysql5.6 mithilfe ...
Vorwort: Kürzlich stieß ich in meinem Projekt auf...
Was das Problem betrifft, dass der strikte Modus ...
Dieses Axios-Paket wird in der Vue3-Demo verwende...
1. Kurze Einführung Vue.js ermöglicht es Ihnen, I...
Inhaltsverzeichnis 1. Index-Grundlagen 1.1 Einlei...
1. Übersicht über Dateiberechtigungen und Eigentu...
Vorwort In unserem täglichen Entwicklungsprozess ...
<br />Als sich das Denken in Ost und West sp...
Vorwort In diesem Artikel wird der Vorgang zum He...
Die Netzwerkkonfiguration des Host Only+NAT-Modus...
Inhaltsverzeichnis 1. Was ist Promise 2. Grundleg...
Hintergrund-Controller @RequestMapping("/get...
Code Wissenspunkte 1. Kombinieren Sie fullpage.js...