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

So implementieren Sie eine bidirektionale Bindungsfunktion in vue.js mit reinem JS

Inhaltsverzeichnis Lassen Sie uns zunächst über d...

MySQL-Grundlagen in 1 Stunde

Inhaltsverzeichnis Erste Schritte mit MySQL MySQL...

Einführung in die Verwendung gängiger Dockerfile-Befehle

Inhaltsverzeichnis 01 CMD 02 EINSTIEGSPUNKT 03 AR...

Tutorial zur Verwendung von Docker Compose zum Erstellen von Confluence

Dieser Artikel verwendet die Lizenzvereinbarung „...

Implementierung der Knotenverbindung zur MySQL-Abfragetransaktionsverarbeitung

Inhaltsverzeichnis Geben Sie das Thema MySQL ein:...

So stellen Sie War-Pakete manuell über Tomcat9 unter Windows und Linux bereit

Die Ergebnisse sind in Windows- und Linux-Umgebun...

Was sind die Verwendungszwecke von Limits in MySQL (empfohlen)

SELECT * FROM Tabellenname Limit m,n; SELECT * FR...

JavaScript Canvas realisiert farbenfrohen Sonnenhalo-Effekt

In diesem Artikelbeispiel wird der spezifische Co...

Verwendung des if-Urteils in HTML

Während der Django-Webentwicklung wird beim Schre...

Vergleich der JS-Array-Loop-Methode und der Effizienzanalyse

Array-Methoden JavaScript bietet viele Array-Meth...