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 Möglichkeit, 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 optimierte 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 die Messwerte CPU-Auslastung und Abfragen pro Sekunde erfasst, 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 verwendeten:
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 Anfragen pro Sekunde um unglaubliche 291 % stiegen 12 bis 35 Abfragen pro Sekunde.
Die Grafik der Ergebnisse ist unten verfügbar:
Antwortzeit (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
Sergey stellte Aimeos bereit und Gevorg bereitete Code für das Seeding der Datenbank vor.
Antwortzeit (Latenz), CPU-Auslastung und Abfragen pro Sekunde. Serverkonfiguration.
Reaktionszeit (Latenz) sank um 42 %, während 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 Umsätze, Seitenaufrufe, Konversionsraten und SEO-Rankings steigern.
Wir hoffen, mit dieser Untersuchung 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 optimale Leistung konfiguriert werden, wodurch die Belastung für Softwareentwicklungsteams verringert wird.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3