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

Drei Möglichkeiten zur Kommunikation zwischen Docker-Containern

Wir alle wissen, dass Docker-Container voneinande...

Holen Sie sich die IP und den Hostnamen aller Hosts auf Zabbix

zabbix Zabbix ([`zæbiks]) ist eine Open-Source-Lö...

CentOS 8-Installationsdiagramm (superdetailliertes Tutorial)

CentOS 8 ist offiziell veröffentlicht! CentOS ent...

Detailliertes Tutorial zur Installation von CUDA9.0 auf Ubuntu16.04

Vorwort: Dieser Artikel basiert auf den Erfahrung...

Detaillierte Anweisungen zur Installation der MySQL5.7-Datenbank unter Centos7.2

Das MySQL auf dem Server ist in der Version 8.0.1...

Ist MySQL eine relationale Datenbank?

MySQL ist ein relationales Datenbankverwaltungssy...

Native JS-Implementierung der Slider-Intervallkomponente

In diesem Artikelbeispiel wird der spezifische Co...

Grafisches Tutorial zur Installation und Konfiguration von Win32 MySQL 5.7.27

Das Installationstutorial für MySQL 5.7.27 wird w...

Unterschiede zwischen MySQL MyISAM und InnoDB

Der Unterschied: 1. InnoDB unterstützt Transaktio...

Implementierungsschritte zum Erstellen eines lokalen Webservers auf Centos8

1 Übersicht System CentOS8, verwenden Sie httpd, ...

jQuery Treeview-Baumstrukturanwendung

In diesem Artikelbeispiel wird der Anwendungscode...