Die folgende Tutorial-Kolumne von Pagoda zeigt Ihnen, wie Sie eine einfache MySQL-Leistungsoptimierung über das Pagoda-Panel erreichen. Ich hoffe, dass es für Freunde in Not hilfreich ist!
Während des Betriebs einer Website mit PHP + MYSQL-Architektur treten häufig verschiedene Leistungsprobleme auf, z. B. MySQL, PHP, CPU, Festplatten-E / A, Cache usw. Unter diesen ist der MySQL-Engpass der häufigste und schwierigste Um einen Faktor zu lösen, der sich auf die Website-Leistung auswirkt, verwenden wir normalerweise Caching-Software wie Redis und Memcached. Dies ist zwar eine der besten Lösungen, erfordert jedoch die Unterstützung der am häufigsten verwendeten Website-Programme nicht unterstützen oder Diese Caching-Software kann nicht perfekt unterstützt werden. Heute werden wir darüber sprechen, wie die MySQL-Leistung durch MySQL-eigene Konfigurationsanpassungen optimiert werden kann, um das MySQL-Engpassproblem zu lindern.
Vorbereitung:
1. Pagoda Linux Panel, offizielle Version 5.2.0+ (veröffentlicht am 20.09.2017) Beta-Version 5.2.4+
2. MySQL 5.x
Normalerweise unterteilen wir MySQL-Tuning in die Folgende Teile:
1. Optimierung der MySQL-Konfigurationsparameter (muss entsprechend den Betriebsbedingungen der Website angepasst werden)
2. Optimierung des Datentabellenindex (der Effekt ist offensichtlich, aber normalerweise müssen hervorragende Open-Source-Programme nicht angepasst werden) 3 . SQL-Anweisungsoptimierung (Das machen Programmierer oder DBAs)
Heute sprechen wir hauptsächlich darüber, wie man MySQL-Konfigurationsparameter mit den neuen Funktionen des Pagoda Panels optimiert:
(Bild 1)
(Abbildung 2)
Offensichtlich zeigt (Abbildung 1) den aktuellen Betriebsstatus von MySQL, (Abbildung 2) zeigt die wichtigsten Konfigurationsparameter von MySQL
Lassen Sie uns diese beiden Bilder interpretieren:
1. Anzahl der aktiven/Spitzenverbindungen
(Abbildung 1) Die aktuell aktive Verbindung beträgt 1. Seit dem Start des MySQL-Dienstes beträgt die höchste Anzahl an Verbindungen 54, wenn die höchste Anzahl an Verbindungen nahe oder gleich ist (Abbildung 2). Bei max_connections sollte darauf geachtet werden, dass der Wert nicht zu stark erhöht wird. Es wird empfohlen, ihn jedes Mal um 50 zu erhöhen und ihn eine Zeit lang zu beobachten Es.
2. Thread-Cache-Trefferquote
Die Thread-Cache-Trefferquote in (Abbildung 1) beträgt 99,78 %. Wenn dieser Wert weniger als 90 % beträgt, wird empfohlen, die Thread-Cache-Größe in (Abbildung 2) entsprechend zu erhöhen um es jedes Mal um 8 zu erhöhen.
3. Index-Trefferquote
Die Index-Trefferquote in (Abbildung 1) beträgt 99,50 %. Es wird empfohlen, die key_buffer_size in (Abbildung 2) entsprechend zu erhöhen Es ist zu beachten, dass Sie diese Option ignorieren können.
4 (Abbildung 1) Die Trefferquote des Innodb-Index beträgt 100 % Wenn der Wert weniger als 95 % beträgt, wird empfohlen, ihn in innodb_buffer_pool_size entsprechend zu erhöhen (Abbildung 2). Es wird empfohlen, ihn jedes Mal um 64 zu erhöhen. Beachten Sie, dass Sie ihn ignorieren können, wenn Ihre Datenbank nicht die Innodb-Engine verwendet Diese Option
5. Abfrage-Cache-Trefferquote
Der MySQL-Abfrage-Cache ist persönlich eine relativ umstrittene Funktion. Wenn Sie Caching-Software wie Redis und Memcached verwenden, wird empfohlen, sie zu deaktivieren, indem Sie query_cache_size in ( Abbildung 2). Wenn Sie keine Caching-Software verwenden, kommt es zu einer übermäßigen Speicherauslastung und Datenbankengpässe sind offensichtlich. Sie können versuchen, den Abfrage-Cache zu aktivieren, eine Funktion, die stark auf der Optimierung der Datentabellenstruktur basiert Wenn die Datentabellenstruktur und die SQL-Anweisungen für den Abfragecache optimiert sind, ist der Effekt immer noch sehr gut.
6. Temporäre Tabellen auf der Festplatte erstellen
Der Anteil der Erstellung temporärer Tabellen auf der Festplatte beträgt 0,42 %. Dies zeigt, dass die meisten temporären Tabellen im Speicher erstellt werden und den Festplatten-IO-Overhead nicht zu sehr erhöhen Folgendes gilt: Wenn der Anteil größer als 2 % ist, erhöhen Sie die tmp_cache_size in (Abbildung 1). Es wird empfohlen, ihn jedes Mal um 32 zu erhöhen. Wenn der Anteil größer als 60 % ist, geben Sie nicht auf Speziell optimierte SQL-Anweisungen, sodass sie während des Betriebs aktiviert werden. Es gibt eine große Anzahl temporärer Tabellen, egal wie viel Cache hinzugefügt wird, es reicht nicht aus.
7. Offene Tabelle
Wenn die offene Tabelle in (Abbildung 1) nahe oder gleich dem table_open_cache in (Abbildung 2) ist, können Sie table_open_cache entsprechend erhöhen, aber wenn sie zu groß eingestellt ist, wird Ihr Programm möglicherweise unterbrochen häufig Für MySQL-Verbindungen wird empfohlen, innerhalb von 1024 zu liegen und das Maximum sollte 2048 nicht überschreiten.
8. Die Menge an JOIN ohne Index und die Menge an JOIN ohne Index
Wenn es nicht 0 ist, überprüfen Sie den Index der Datentabelle, solange er nicht dramatisch ansteigt, z. B. um Tausende pro Tag , es kann im Allgemeinen ignoriert werden und wird optimiert. Es ist besser für Programmierer oder Datenbankadministratoren geeignet, die Indizierung durchzuführen.
9. Anzahl der Zusammenführungen nach dem Sortieren
Wenn dieser Wert langsam ansteigt, wird empfohlen, sort_buffer_size in (Abbildung 2) entsprechend zu erhöhen. Es wird empfohlen, ihn jedes Mal um 512 zu erhöhen, aber das Maximum sollte 8192 nicht überschreiten. Wenn dieser Wert weiter ansteigt, ist sort_buffer_size zu erhöhen nutzlos, also geben Sie diese Option auf. Nun, diese Verantwortung sollte immer noch bei den Programmentwicklern liegen.
10. Anzahl der Tabellensperren
Wenn der Server-CPU-Overhead nicht hoch ist und die Tabelle wie verrückt gesperrt ist, wird empfohlen, alle Datentabellen in innodb zu konvertieren und daran zu denken, vor der Konvertierung ein Backup zu erstellen.
11. Optimierungsplan
Dies ist ein empfohlener Optimierungsplan basierend auf der Speichergröße. Es wird nur empfohlen, ihn für grundlegende Referenzwerte zu verwenden.
Hinweis: Nach dem Speichern der Parameterkonfiguration wird diese nicht sofort wirksam. Denken Sie daran, den MySQL-Dienst neu zu starten.
Das obige ist der detaillierte Inhalt vonSo erreichen Sie eine einfache MySQL-Leistungsoptimierung über das Pagoda-Panel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!