Im Artikel MySQL-Optimierung: Cache-Optimierung wird ein sehr wichtiges Konzept erwähnt, nämlich „show variables“ (Variablen anzeigen), das zum Anzeigen der vom System kompilierten oder in my.cnf konfigurierten Variablenwerte verwendet wird. Als Status anzeigen wird der Statuswert bezeichnet, der die Statusinformationen der aktuellen Serviceinstanz anzeigt und ein sich dynamisch ändernder Wert ist. Daher wird es häufig verwendet, um zu beobachten, ob der aktuelle MySQl-Betrieb normal ist. Wenn dies nicht der Fall ist, kann die Leistung von MySQL durch Anpassen statischer Parameter verbessert werden. Daher ist das Verständnis des Unterschieds zwischen diesen beiden Konzepten die Grundlage für die nachfolgende Optimierung. MySQL-Verbindungsoptimierung Ich erinnere mich, dass ich einmal keine Verbindung herstellen konnte, als ich innerhalb der Firma eine Verbindung zu MySQL herstellen wollte. Nachdem wir den DBA gefunden hatten, untersuchten wir die Ursache und stellten fest, dass die aktuelle Anzahl der MySQL-Verbindungen voll war. Nach Anpassungen war das Problem behoben. Für den Fehler „zu viele Verbindungen“ gibt es im Allgemeinen zwei Gründe: Der erste ist, dass sich tatsächlich zu viele Personen mit MySQL verbinden, wodurch die Anzahl der Verbindungen erschöpft ist. Der zweite Grund liegt darin, dass der Wert für „max_connections“ zu klein ist. 1. Verbindungsparameter (Variablen anzeigen) mysql> Variablen wie „%connect%“ anzeigen; +-----------------------------------------------------------+-----------------+ | Variablenname | Wert | +-----------------------------------------------------------+-----------------+ | Zeichensatzverbindung | utf8 | | Sortierverbindung | utf8_general_ci | | Verbindungstimeout | 10 | | Trennung bei abgelaufenem Passwort | EIN | | init_connect | | | max_Verbindungsfehler | 100 | | max_Verbindungen | 151 | | Max. Benutzerverbindungen | 0 | | Leistungsschema_Sitzungsverbindungsattrs_Größe | 512 | +-----------------------------------------------------------+-----------------+
2. Verbindungsstatus (Status anzeigen) Zu beachten ist, dass Variablenwerte (Anzeigevariablen) mit einem Kleinbuchstaben beginnen, während Statuswerte (Anzeigestatus) mit einem Großbuchstaben beginnen. Diese Unterscheidung hilft beim Erinnern und Einordnen mysql> Status wie „%connections%“ anzeigen; +--------------------------------------+----------+ | Variablenname | Wert | +--------------------------------------+----------+ | Verbindungsfehler_max_Verbindungen | 0 | | Verbindungen | 197 | | Max_genutzte_Verbindungen | 2 | +--------------------------------------+----------+
Max_used_connections gibt den Maximalwert der Anzahl gleichzeitiger Verbindungen seit dem Start von MySQL an. Wenn dieser Wert größer als max_connections ist, weist dies darauf hin, dass sich das System häufig in einem Zustand hoher Parallelität befindet und Sie eine Erhöhung der maximalen Anzahl gleichzeitiger Verbindungen in Erwägung ziehen sollten. 3. Verbindungsthreadparameter (Threadvariablen und -status) mysql> Variablen wie „thread%“ anzeigen; +--------------------+-----------------------------------------+ | Variablenname | Wert | +--------------------+-----------------------------------------+ | Thread-Cache-Größe | 9 | | Thread-Parallelität | 10 | | Thread-Handling | ein Thread pro Verbindung | | Threadstapel | 262144 | +--------------------+-----------------------------------------+
Der Standardwert von Informationen zum Thread-Status anzeigen mysql> Status wie „Thread%“ anzeigen; +---------------------+------+ | Variablenname | Wert | +---------------------+------+ | Zwischengespeicherte Threads | 1 | | Threads_verbunden | 1 | | Threads_erstellt | 2 | | Laufende Threads | 1 | +---------------------+------+
Verbindungsanforderungsstapel Wenn MySQL plötzlich in kurzer Zeit viele Verbindungsanforderungen empfängt, speichert MySQL die Verbindungsanforderungen, die nicht rechtzeitig verarbeitet werden können, im Stapel für die nachfolgende Verarbeitung durch MySQL. Der Parameter back_log legt die Größe des Stapels fest, die mit dem folgenden Befehl angezeigt werden kann: mysql> Variablen wie „back_log“ anzeigen; +---------------+-------+ | Variablenname | Wert | +---------------+-------+ | zurück_log | 80 | +---------------+-------+ Verbindungsanomalie mysql> Status wie „Abgebrochen%“ anzeigen; +------------------+--------+ | Variablenname | Wert | +------------------+--------+ | Abgebrochene_Clients | 0 | | Abgebrochene Verbindungen | 219 | +------------------+--------+
andere mysql> Status wie „Langsam %“ anzeigen; +---------------------+--------+ | Variablenname | Wert | +---------------------+--------+ | Langsame Startthreads | 0 | | Langsame Abfragen | 0 | +---------------------+--------+ mysql> Variablen wie „slow_launch_time“ anzeigen; +------------------+--------+ | Variablenname | Wert | +------------------+--------+ | langsame Startzeit | 2 | +------------------+--------+ Slow_lunch_threads: Wenn die zum Erstellen eines Threads benötigte Zeit zu lang ist und den Einstellwert von slow_launch_time überschreitet, wird dies aufgezeichnet. Sie können die Fehlerstatusinformationen der Verbindung mithilfe von Connection_error% anzeigen: mysql> Status wie „Connection_error%“ anzeigen; +--------------------------------------+----------+ | Variablenname | Wert | +--------------------------------------+----------+ | Verbindungsfehler akzeptieren | 0 | | Interne Verbindungsfehler | 0 | | Verbindungsfehler_max_Verbindungen | 0 | | Verbindungsfehler_Peer-Adresse | 0 | | Verbindungsfehlerauswahl | 0 | | Verbindungsfehler_tcpwrap | 0 | +--------------------------------------+----------+ Connection_errors_peer_address Die Anzahl der Fehler, die beim Nachschlagen der MySQL-Client-IP-Adresse aufgetreten sind. Das könnte Sie auch interessieren:
|
<<: Linux verwendet iptables, um den Zugriff mehrerer IPs auf Ihren Server zu beschränken
>>: Detaillierte Erklärung dieses Zeigeproblems in JavaScript
Im Tabellenkopf können Sie die dunkle Rahmenfarbe...
Inhaltsverzeichnis Standardausführungsprozess Opt...
Die Einrichtung eines MySQL-Index ist für den eff...
Ich habe heute eine neue Version von MySQL (8.0.2...
1. Setzen Sie den HTML-Code der Maskenebene und d...
--Beim Verbinden mit der Datenbank die Matching-R...
Tabellen spielten einst eine sehr wichtige Rolle ...
MySQL auf Groß-/Kleinschreibung eingestellt Windo...
Hintergrund Während der Entwicklung benötigen wir...
1: schreibgeschützt dient zum Sperren dieses Steue...
Die Umgebung dieses Artikels ist Windows 10 und d...
<br />Die offizielle Version der Baidu-Enzyk...
In diesem Artikel wird der dritte Artikel zur Ver...
Wirkung Von oben nach unten verblassen Quellcode ...
Beim Schreiben eines Webprojekts stieß ich auf ei...