Erläuterung der Faktoren, die die Datenbankleistung in MySQL beeinflussen

Erläuterung der Faktoren, die die Datenbankleistung in MySQL beeinflussen

Eine Geschichte über die Datenbankleistung

Während des Interviews wird das Thema Datenbanken in gewissem Umfang besprochen, z. B. „Wie gut kennen Sie sich mit Datenbanken aus?“ Wann wird die Leistung der Datenbank am meisten getestet? Im Allgemeinen beim Lesen und Schreiben großer Datenmengen. Große Werbeaktivitäten im E-Commerce sind der Zeitpunkt, um die Leistung jeder Datenbank zu testen.

Bei Webservern können wir bei großen Datenmengen die Belastung eines einzelnen Servers einfach durch horizontale Erweiterung reduzieren. Bei Datenbankservern ist das jedoch nicht so einfach. Sie können nicht einfach horizontal erweitert werden, was auch gegen die Prinzipien der Datenbankintegrität und -konsistenz verstößt. Wie sollte also unsere Datenbankarchitektur aufgebaut sein?

Bei großen Werbemaßnahmen ist alles vergeblich, egal wie gut das Produkt ist oder wie erfolgreich die Planung ist, wenn keine stabile Datenbank und Serverumgebung vorhanden ist.

Beispiel einer Datenbankarchitektur

Wie in der Abbildung gezeigt, gibt es zwischen dem Master- und dem Slave-Server keine Master-Slave-Replikationskomponente. Das heißt, wenn der Master-Server ausfällt, ist es schwierig, den Master-Server zu wechseln. Dies erfordert, dass der DBA den Slave-Server mit den neuesten Daten von den Slave-Servern auswählt, ihn zum Master-Server befördert und andere Slave-Server synchronisiert. Der Zeitaufwand dieses Prozesses ist ebenfalls sehr hoch.

Darüber hinaus stellen zu viele Slave-Server bei großem Geschäftsvolumen auch eine gewisse Herausforderung für die Netzwerkkarte des Hauptservers dar.

Mithilfe der Clusterüberwachungsinformationen können wir verstehen, was die Datenbankleistung beeinflusst.

Die Antwort ist ja. Im Allgemeinen sind die Hauptgründe QPS und TPS, Parallelität (die Anzahl der gleichzeitig verarbeiteten Anfragen, um Verwechslungen mit der Anzahl gleichzeitiger Verbindungen zu vermeiden), Festplatten-E/A und zu hohe Lesevorgänge.

Ein Tipp: Am besten verzichten Sie auf die Datensicherung in der Hauptdatenbank, zumindest brechen Sie derartige Pläne vor größeren Aktionen ab.

Faktoren, die die Datenbank beeinflussen

  • SQL-Abfragegeschwindigkeit
  • Server-Hardware
  • Netzwerkkartenverkehr
  • Festplatten-E/A

Ultrahohe QPS und TPS

Risiko: Ineffizientes SQL (QPS: pro Sekunde verarbeitete Abfragen)

Hohe CPU-Auslastung und hohe Parallelität

Risiko: Eine große Anzahl gleichzeitiger Verbindungen (die Anzahl der Datenbankverbindungen ist ausgeschöpft (max_connections ist standardmäßig auf 100 eingestellt))

Risiko: Extrem hohe CPU-Auslastung (Ausfallzeit aufgrund von CPU-Erschöpfung)

Festplatten-E/A

Risiko: Die Disk-IO-Leistung sinkt plötzlich (verwenden Sie schnellere Festplattengeräte)

Risiko: Andere geplante Aufgaben, die viel Festplattenleistung verbrauchen (geplante Aufgaben anpassen)

Netzwerkkartenverkehr

Risiko: Netzwerkkarten-IO ist voll (1000 MB/8 = 100 MB)

So vermeiden Sie, dass keine Verbindung zur Datenbank hergestellt werden kann:

1. Reduzieren Sie die Anzahl der Slave-Server
2. Führen Sie hierarchisches Caching durch
3. Vermeiden Sie die Verwendung von „select *“ für Abfragen
4. Unternehmensnetzwerk und Servernetzwerk trennen

Das könnte Sie auch interessieren:
  • Nutzungs- und Leistungsoptimierungstechniken für die Aggregatfunktion „count“ in MySQL
  • Detaillierte Erklärung der Gründe und Optimierungen für den großen Offset, der die Leistung bei MySQL-Abfragen beeinträchtigt
  • Beispiel zur Optimierung der MySQL-Einfügeleistung
  • Umfassende Referenz zur MySQL-Leistungsoptimierungsmethode, von der CPU über die Dateisystemauswahl bis hin zur mysql.cnf-Parameteroptimierung
  • Eine kurze Diskussion über die Unterschiede zwischen MySQL und MariaDB (Leistungsvergleich zwischen MariaDB und MySQL)
  • Optimierung der Leistung von Paging-Abfragen für MySQL mit mehreren zehn Millionen Daten
  • Untersuchung der MySQL-Paging-Leistung
  • Detaillierte Erläuterung der Leistungsoptimierung für MySQL-Batch-SQL-Einfügungen
  • Zusammenfassung mehrerer wichtiger Methoden zur Berechnung und Optimierung des Leistungsindex für MySQL

<<:  Vue implementiert den Anwesenheitskalender von DingTalk

>>:  Keepalived+Nginx+Tomcat-Beispielcode zur Implementierung eines hochverfügbaren Webclusters

Artikel empfehlen

MySQL-Primärschlüssel-Benennungsstrategie im Zusammenhang

Als ich kürzlich die Details der Datenlebenszyklu...

Detaillierte Analyse von Absturzfällen bei MySQL-Instanzen

[Problembeschreibung] Unsere Produktionsumgebung ...

Lösung für das Problem der langsamen Docker-Pull-Image-Geschwindigkeit

Derzeit verfügt Docker über einen offiziellen Mir...

Beispielverwendung des Linux-Komprimierungsdateibefehls „zip“

Das „.zip“-Format wird zum Komprimieren von Datei...

Beispielcode zur Trennung von Front-End und Back-End mit FastApi+Vue+LayUI

Inhaltsverzeichnis Vorwort Projektdesign hinteres...

Warum sollten MySQL-Felder NOT NULL verwenden?

Ich habe vor Kurzem in einer neuen Firma angefang...

So konfigurieren Sie Http, Https, WS und WSS in Nginx

Vorne geschrieben Im heutigen Internetbereich ist...