Die Optimierung der MySQL-Konfiguration ist eine wichtige Komponente der Datenbankverwaltung, die von Datenbankexperten und -administratoren implementiert wird. Ziel ist es, die Datenbank passend zu ihrer Hardware und Arbeitslast zu konfigurieren. Aber über den Bereich der Datenbankverwaltung hinaus wird der Nutzen der MySQL-Konfigurationsoptimierung weitgehend ignoriert.
Wir gehen davon aus, dass MySQL-Optimierung die Leistung von Web-Apps erheblich beeinflussen kann. Wenn wir den Wert der MySQL-Optimierung aufzeigen können, glauben wir, dass Unternehmen und Organisationen daran interessiert sein könnten, diese Praxis in größerem Umfang zu integrieren.
Eine Verbesserung der Anwendungsleistung durch Optimierung lässt sich am besten mit einem umfassenden Ansatz erreichen, der die folgenden Bereiche anspricht:
Viele erfahrene Entwickler betrachten die Optimierung der Datenbankleistung nicht als Chance, die Leistung ihrer Apps zu verbessern, da sie wenig über diesen Bereich wissen. Sie verbringen viel Zeit damit, die Codebasis zu optimieren, aber es erreicht einen Punkt, an dem es für die investierte Zeit und Energie kein wertvolles Ergebnis mehr bringt. Unsere Forschung darüber, wie sich MySQL-Optimierung positiv auf die Leistung beliebter Open-Source-Webanwendungen auswirkt, zielt darauf ab, Entwicklern diese Tatsache vor Augen zu führen.
Mit unserem Testverfahren für Laravel Aimeos können wir die Leistung der App vor und nach der Konfiguration anhand von Seed-Daten vergleichen. Indem wir den Test zuerst mit der Standardkonfiguration ausführen, erhalten wir wertvolle Kontrollergebnisse, mit denen wir die abgestimmte Konfiguration vergleichen können.
Wir haben den folgenden Prozess verwendet, um jede Anwendung vorzubereiten und zu testen:
Wir haben JMeter-Tests, MySQL-Status und MySQL-Variablen während der Tests auf Github veröffentlicht.
Die Kennzahlen, die wir uns während dieser Untersuchung angesehen haben, sind:
Wir haben Metriken zur CPU-Auslastung und Abfragen pro Sekunde gesammelt, um die Arbeitslast zu vergleichen.
Aimeos Laravel ist ein beliebtes E-Commerce-Web-App-Framework zum Erstellen von Online-Shops, Marktplätzen und B2B-Apps. Mit Aimeos können Benutzer API-First-E-Commerce-Shops für Laravel erstellen, die so skaliert werden können, dass sie über 1 Milliarde Artikel unterstützen. Es ist in über 30 Sprachen verfügbar und hat über 300.000 Installationen.
Um Aimeos zu testen, haben wir den Test mit zehn Benutzern begonnen, mussten jedoch die Anzahl der Benutzer verringern, da wir den Test mit der Standardkonfiguration nicht abschließen konnten.
Wir haben die Datenbank mit 500 MB Daten gefüllt.
Unsere Testdauer betrug 10 Minuten.
Wir haben verwendet:
Die für Aimeos Laravel verwendete Konfiguration ist wie folgt:
query_cache_type=1 query_cache_size=134217728 query_cache_limit=16777216 query_cache_min_res_unit=4096 thread_cache_size=0 key_buffer_size=8388608 max_allowed_packet=1073741824 sort_buffer_size=2097152 read_rnd_buffer_size=262144 bulk_insert_buffer_size=8388608 myisam_sort_buffer_size=8388608 innodb_buffer_pool_chunk_size=134217728 innodb_buffer_pool_size=805306368 max_heap_table_size=16777216 tmp_table_size=16777216 join_buffer_size=8388608 max_connections=151 table_open_cache=2048 table_definition_cache=1408 innodb_flush_log_at_trx_commit=1 innodb_log_file_size=201326592 innodb_log_buffer_size=16777216 innodb_write_io_threads=4 innodb_read_io_threads=4 innodb_file_per_table=1 innodb_flush_method=O_DIRECT innodb_thread_concurrency=0 innodb_purge_threads=4 optimizer_search_depth=0 thread_handling=pool-of-threads thread_pool_size=2
Die Testergebnisse von Aimeos Laravel zeigten dramatische Leistungsverbesserungen zwischen der Standardkonfiguration und der optimierten Konfiguration.
Die Optimierung von MySQL führte zu einer deutlichen Verbesserung der durchschnittlichen Server-Antwortzeit, die von 1,4 Sekunden auf unter 800 Millisekunden reduziert wurde
Antwortzeit (Latenz) sank um 42 % und die durchschnittliche CPU-Auslastung um 86 %, während Abfragen pro Sekunde um unglaubliche 291 % zunahmen 12 bis 35 Abfragen pro Sekunde.
Die Grafik der Ergebnisse ist unten verfügbar: Reaktionszeit (ms), von Aimeos optimierte MySQL-Konfiguration im Vergleich zur Standardkonfiguration
CPU-Auslastung (%), von Aimeos optimierte MySQL-Konfiguration im Vergleich zur Standardkonfiguration
Abfragen pro Sekunde, von Aimeos optimierte MySQL-Konfiguration im Vergleich zur Standardkonfiguration
Wir haben uns mit den Laravel-Entwicklern Gevorg Mkrtchyan und Sergey Sinitsa von der Firma Initlab zusammengetan, um diese Fragestellung zu untersuchen, und sind sehr dankbar für ihr Fachwissen.
Sergey stellte Aimeos bereit und Gevorg bereitete den Code für das Seeding der Datenbank vor.
Unser Testverfahren mit Aimeos Laravel zeigte nach der Konfiguration der Datenbank dramatische Verbesserungen bei Reaktionszeit (Latenz), CPU-Auslastung und Abfragen pro Sekunde Serverkonfiguration.
DieReaktionszeit (Latenz) sank um 42 %, während die CPU-Auslastung um 86 % sank. Anfragen pro Sekunde stiegen in Aimeos Laravel 500 MB um 291 %.
Zusammenfassend lässt sich sagen, dass MySQL-Tuning ein wesentlicher Aspekt der Datenbankverwaltung ist, der erhebliche Auswirkungen auf die Leistung von Laravel-Anwendungen haben kann. Schlecht funktionierende Webanwendungen können zu längeren Seitenladezeiten, langsamer Bearbeitung von Anfragen und einer schlechten Benutzererfahrung führen, was sich negativ auf SEO und Verkäufe auswirken kann. Durch die Optimierung der Leistung von Web-Apps mit MySQL-Tuning können Unternehmen und Organisationen Verkäufe, Seitenaufrufe, Konversionsraten und SEO-Rankings steigern.
Mit dieser Untersuchung hoffen wir, den Wert der MySQL-Optimierung als Mittel zur Verbesserung der Leistung von Laravel-Anwendungen aufzuzeigen und Laravel-Entwickler zu ermutigen, diese Vorgehensweise bei der Optimierung der Leistung ihrer Apps zu berücksichtigen.
Mit Tools wie Releem können Datenbanken automatisch für eine optimale Leistung konfiguriert werden, wodurch die Belastung der Softwareentwicklungsteams verringert wird.
Das obige ist der detaillierte Inhalt vonWie MySQL-Tuning die Laravel-Leistung verbessert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!