Heim Datenbank MySQL-Tutorial Beispielcode zur MySQL-Optimierungsverbindungsoptimierung

Beispielcode zur MySQL-Optimierungsverbindungsoptimierung

Mar 16, 2017 pm 02:24 PM

MySQL Verbindungsoptimierung bezieht sich hauptsächlich auf die Parameter, die am Prozess beteiligt sind, bei dem der Client eine Verbindung zur Datenbank herstellt und die Datenbank die Datentabelle und den Index öffnet Antwort auf die Anfrage des Kunden Anpassung. Lassen Sie uns die oben erwähnte

MySQL-Optimierung Cache im Detail besprechen. In diesem Artikel wird ein sehr wichtiges Konzept erwähnt, nämlich die Verwendung von Show-Variablen zur Darstellung der Systemkompilierung oder -konfiguration Wert in my.cnf. Der Status anzeigen wird als Status-Wert bezeichnet, der die Statusinformationen der aktuell ausgeführten Dienstinstanz anzeigt, bei der es sich um einen sich dynamisch ändernden Wert handelt. Daher wird es häufig verwendet, um zu beobachten, ob das aktuelle MySQL normal läuft. Wenn dies nicht normal ist, müssen Sie die statischen -Parameter anpassen, um die Leistung von MySQL zu verbessern. Daher ist das Verständnis des Unterschieds zwischen diesen beiden Konzepten die Grundlage für die anschließende Optimierung.

MySQL-Verbindungsoptimierung

Ich erinnere mich, als ich einmal versuchte, innerhalb des Unternehmens eine Verbindung zu MySQL herzustellen, konnte ich nicht immer eine Verbindung herstellen. Nachdem wir den DBA gefunden hatten, untersuchten wir die Ursache und stellten fest, dass die aktuelle Anzahl der MySQL-Verbindungen voll war. Nach Anpassungen wurde das Problem behoben. Es gibt im Allgemeinen zwei Gründe für Fehler, die zu viele Verbindungen verursachen. Der erste ist, dass tatsächlich viele Leute eine Verbindung zu MySQL herstellen, was dazu führt, dass die Anzahl der Verbindungen erschöpft ist. Der zweite Grund ist, dass der max_connections-Wert zu klein ist.

1. Verbindungsparameter (Variablen anzeigen)


mysql> show variables like '%connect%';
+-----------------------------------------------+-----------------+
| Variable_name                 | Value      |
+-----------------------------------------------+-----------------+
| character_set_connection           | utf8      |
| collation_connection             | utf8_general_ci |
| connect_timeout                | 10       |
| disconnect_on_expired_password        | ON       |
| init_connect                 |         |
| max_connect_errors              | 100       |
| max_connections                | 151       |
| max_user_connections             | 0        |
| performance_schema_session_connect_attrs_size | 512       |
+-----------------------------------------------+-----------------+
Nach dem Login kopieren

bezieht sich auf die Parameter, die die MySQL-Dienstinstanz verwendet kann gleichzeitig akzeptieren Die maximale Anzahl gleichzeitiger Verbindungen. MySQL unterstützt tatsächlich den Algorithmus zum Hinzufügen einer zur maximalen Anzahl von Verbindungen und stellt so sicher, dass der Superadministrator auch dann noch eine Verbindung mit dem Server zur Verwaltung herstellen kann, wenn die Anzahl der Verbindungen aufgebraucht ist. max_connections

Legen Sie die maximale Anzahl gleichzeitiger Verbindungen für das angegebene Konto fest. max_user_connections

Wenn ein illegaler Host in böswilliger Absicht eine Verbindung zum MySQL-Server herstellt und die aufgetretenen Fehler den festgelegten Wert erreichen, löst MySQL alle Verbindungen vom Host auf. Es wird jedoch nach der Ausführung von max_connect_errors Flush Hosts gelöscht.

2. Verbindungsstatus (Status anzeigen)

Zu beachten ist, dass der Variablenwert (Variablen anzeigen) mit einem Kleinbuchstaben beginnt, während der Statuswert ( Status anzeigen) beginnt mit einem Großbuchstaben. Diese Unterscheidung ist hilfreich für den Speicher und die Klassifizierung


mysql> show status like '%connections%';
+-----------------------------------+-------+
| Variable_name           | Value |
+-----------------------------------+-------+
| Connection_errors_max_connections | 0   |
| Connections            | 197  |
| Max_used_connections       | 2   |
+-----------------------------------+-------+
Nach dem Login kopieren

Wenn die maximale Anzahl der Parallelitäten von MySQL größer ist als max_connections in der Systemvariablen Connection_errors_max_connections (Variablen anzeigen) In dieser Variable wird die maximale Anzahl der Parallelitäten und damit die Anzahl der Ablehnungen erfasst. Wenn der Wert von Connection_error_max_connections relativ groß ist, bedeutet dies, dass die aktuelle Systemparallelität relativ hoch ist und Sie eine Erhöhung des Werts von max_connections in Betracht ziehen sollten.

gibt die Anzahl der erfolgreich aufgebauten Verbindungen seit dem Start von MySQL an. Dieser Wert wird kontinuierlich akkumuliert. Connections

Max_used_connections gibt die maximale Anzahl gleichzeitiger Verbindungen gleichzeitig 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 mit hoher Parallelität befindet und Sie eine Erhöhung der maximalen Anzahl gleichzeitiger Verbindungen in Betracht ziehen sollten.

3. Verbindungsthread-Parameter (Thread-Variablen und Status)


mysql> show variables like 'thread%';
+--------------------+---------------------------+
| Variable_name   | Value           |
+--------------------+---------------------------+
| thread_cache_size | 9             |
| thread_concurrency | 10            |
| thread_handling  | one-thread-per-connection |
| thread_stack    | 262144          |
+--------------------+---------------------------+
Nach dem Login kopieren

Legen Sie die Anzahl der Verbindungsthreads fest Caches. Dieser Cache entspricht dem MySQL-Thread-Cache-Pool (Thread-Cache-Pool), der inaktive Verbindungsthreads in den Verbindungspool legt und zwischenspeichert, anstatt sie sofort zu zerstören. Wenn bei einer neuen Verbindungsanforderung eine inaktive Verbindung im Verbindungspool vorhanden ist, wird diese direkt verwendet. Andernfalls muss der Thread neu erstellt werden. Das Erstellen von Threads ist ein erheblicher Systemaufwand. Dieser Teil der Thread-Verarbeitung von MySQL ähnelt der Thread-Verarbeitung von Nginx. Wenn ich in Zukunft die Thread-Verarbeitung von Nginx vorstelle, werde ich sie vergleichen. thread_cache_size

Der Standardwert ist: Ein Thread pro Verbindung bedeutet, dass für jede Verbindung ein Thread bereitgestellt oder erstellt wird, um die Anforderung zu verarbeiten, bis die Anforderung abgeschlossen ist, die Verbindung zerstört oder im Cache-Pool gespeichert wird . Wenn der Wert „no-threads“ lautet, bedeutet dies, dass immer nur ein Thread zur Verarbeitung der Verbindung bereitgestellt wird, der im Allgemeinen zum Testen auf einem einzelnen Computer verwendet wird. thread_handling

bedeutet Heap. Es ist bekannt, dass Prozesse und Threads eindeutige IDs haben Durch die spezifische Wartung des Thread-Bibliotheksbereichs müssen die Kontextinformationen des Prozesses einen Bereich im Speicher öffnen, damit das Programm schnell aktiviert werden kann. Die für jeden Thread von MySQL festgelegte Standardstapelgröße ist: 262144/1024=256kthread_stack stack

Thread-Statusinformationen anzeigen


mysql> show status like 'Thread%';
+-------------------+-------+
| Variable_name   | Value |
+-------------------+-------+
| Threads_cached  | 1   |
| Threads_connected | 1   |
| Threads_created  | 2   |
| Threads_running  | 1   |
+-------------------+-------+
Nach dem Login kopieren

Aktuelle Nummer Anzahl der Threads im Thread-PoolThread_cached

Aktuelle Anzahl der VerbindungenThread_connected

Thread_cached: 当前连接线程创建数, 如果这个值过高,可以调整threadcachesize 也就是调整线程缓存池的大小。

Thred_runnint: 当前活跃的线程数。

连接请求堆栈

MySQL在很短的时间内,突然收到很多的连接请求时,MySQL会将不能来得及处理的连接请求保存在堆栈中,以便MySQL后续处理。back_log参数设置了堆栈的大小,可以通过如下命令查看:


mysql> show variables like 'back_log';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| back_log   | 80  |
+---------------+-------+
Nach dem Login kopieren

连接异常


mysql> show status like 'Aborted%';
+------------------+-------+
| Variable_name  | Value |
+------------------+-------+
| Aborted_clients | 0   |
| Aborted_connects | 219  |
+------------------+-------+
Nach dem Login kopieren

Aborted_clients MySQL 客户机被异常关闭的次数。

Aborted_connects 试图连接到MySQL服务器而失败的连接次数。

other


mysql> show status like 'Slow%';
+---------------------+-------+
| Variable_name    | Value |
+---------------------+-------+
| Slow_launch_threads | 0   |
| Slow_queries    | 0   |
+---------------------+-------+
Nach dem Login kopieren


mysql> show variables like 'slow_launch_time';
+------------------+-------+
| Variable_name  | Value |
+------------------+-------+
| slow_launch_time | 2   |
+------------------+-------+
Nach dem Login kopieren

Slow_lunch_threads 创建线程的时间过长,超过slow_launch_time的设定值,则会记录。

可以通过使用 Connection_error%来查看连接的错误状态信息:


mysql> show status like 'Connection_error%';
+-----------------------------------+-------+
| Variable_name           | Value |
+-----------------------------------+-------+
| Connection_errors_accept     | 0   |
| Connection_errors_internal    | 0   |
| Connection_errors_max_connections | 0   |
| Connection_errors_peer_address  | 0   |
| Connection_errors_select     | 0   |
| Connection_errors_tcpwrap     | 0   |
+-----------------------------------+-------+
Nach dem Login kopieren

Connection_errors_peer_address 查找MySQL客户机IP地址是发生的错误数。

Das obige ist der detaillierte Inhalt vonBeispielcode zur MySQL-Optimierungsverbindungsoptimierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

MySQL: Einfache Konzepte für einfaches Lernen MySQL: Einfache Konzepte für einfaches Lernen Apr 10, 2025 am 09:29 AM

MySQL ist ein Open Source Relational Database Management System. 1) Datenbank und Tabellen erstellen: Verwenden Sie die Befehle erstellte und creatEtable. 2) Grundlegende Vorgänge: Einfügen, aktualisieren, löschen und auswählen. 3) Fortgeschrittene Operationen: Join-, Unterabfrage- und Transaktionsverarbeitung. 4) Debugging -Fähigkeiten: Syntax, Datentyp und Berechtigungen überprüfen. 5) Optimierungsvorschläge: Verwenden Sie Indizes, vermeiden Sie ausgewählt* und verwenden Sie Transaktionen.

Wie man phpmyadmin öffnet Wie man phpmyadmin öffnet Apr 10, 2025 pm 10:51 PM

Sie können PhpMyAdmin in den folgenden Schritten öffnen: 1. Melden Sie sich beim Website -Bedienfeld an; 2. Finden und klicken Sie auf das Symbol phpmyadmin. 3. Geben Sie MySQL -Anmeldeinformationen ein; 4. Klicken Sie auf "Login".

MySQL: Eine Einführung in die beliebteste Datenbank der Welt MySQL: Eine Einführung in die beliebteste Datenbank der Welt Apr 12, 2025 am 12:18 AM

MySQL ist ein Open Source Relational Database Management -System, das hauptsächlich zum schnellen und zuverlässigen Speicher und Abrufen von Daten verwendet wird. Sein Arbeitsprinzip umfasst Kundenanfragen, Abfragebedingungen, Ausführung von Abfragen und Rückgabergebnissen. Beispiele für die Nutzung sind das Erstellen von Tabellen, das Einsetzen und Abfragen von Daten sowie erweiterte Funktionen wie Join -Operationen. Häufige Fehler umfassen SQL -Syntax, Datentypen und Berechtigungen sowie Optimierungsvorschläge umfassen die Verwendung von Indizes, optimierte Abfragen und die Partitionierung von Tabellen.

Warum MySQL verwenden? Vorteile und Vorteile Warum MySQL verwenden? Vorteile und Vorteile Apr 12, 2025 am 12:17 AM

MySQL wird für seine Leistung, Zuverlässigkeit, Benutzerfreundlichkeit und Unterstützung der Gemeinschaft ausgewählt. 1.MYSQL bietet effiziente Datenspeicher- und Abruffunktionen, die mehrere Datentypen und erweiterte Abfragevorgänge unterstützen. 2. Übernehmen Sie die Architektur der Client-Server und mehrere Speichermotoren, um die Transaktion und die Abfrageoptimierung zu unterstützen. 3. Einfach zu bedienend unterstützt eine Vielzahl von Betriebssystemen und Programmiersprachen. V.

So verwenden Sie ein einzelnes Gewinde -Redis So verwenden Sie ein einzelnes Gewinde -Redis Apr 10, 2025 pm 07:12 PM

Redis verwendet eine einzelne Gewindearchitektur, um hohe Leistung, Einfachheit und Konsistenz zu bieten. Es wird E/A-Multiplexing, Ereignisschleifen, nicht blockierende E/A und gemeinsame Speicher verwendet, um die Parallelität zu verbessern, jedoch mit Einschränkungen von Gleichzeitbeschränkungen, einem einzelnen Ausfallpunkt und ungeeigneter Schreib-intensiver Workloads.

MySQL und SQL: Wesentliche Fähigkeiten für Entwickler MySQL und SQL: Wesentliche Fähigkeiten für Entwickler Apr 10, 2025 am 09:30 AM

MySQL und SQL sind wesentliche Fähigkeiten für Entwickler. 1.MYSQL ist ein Open -Source -Relational Database Management -System, und SQL ist die Standardsprache, die zum Verwalten und Betrieb von Datenbanken verwendet wird. 2.MYSQL unterstützt mehrere Speichermotoren durch effiziente Datenspeicher- und Abruffunktionen, und SQL vervollständigt komplexe Datenoperationen durch einfache Aussagen. 3. Beispiele für die Nutzung sind grundlegende Abfragen und fortgeschrittene Abfragen wie Filterung und Sortierung nach Zustand. 4. Häufige Fehler umfassen Syntaxfehler und Leistungsprobleme, die durch Überprüfung von SQL -Anweisungen und Verwendung von Erklärungsbefehlen optimiert werden können. 5. Leistungsoptimierungstechniken umfassen die Verwendung von Indizes, die Vermeidung vollständiger Tabellenscanning, Optimierung von Join -Operationen und Verbesserung der Code -Lesbarkeit.

Mysqls Platz: Datenbanken und Programmierung Mysqls Platz: Datenbanken und Programmierung Apr 13, 2025 am 12:18 AM

Die Position von MySQL in Datenbanken und Programmierung ist sehr wichtig. Es handelt sich um ein Open -Source -Verwaltungssystem für relationale Datenbankverwaltung, das in verschiedenen Anwendungsszenarien häufig verwendet wird. 1) MySQL bietet effiziente Datenspeicher-, Organisations- und Abruffunktionen und unterstützt Systeme für Web-, Mobil- und Unternehmensebene. 2) Es verwendet eine Client-Server-Architektur, unterstützt mehrere Speichermotoren und Indexoptimierung. 3) Zu den grundlegenden Verwendungen gehören das Erstellen von Tabellen und das Einfügen von Daten, und erweiterte Verwendungen beinhalten Multi-Table-Verknüpfungen und komplexe Abfragen. 4) Häufig gestellte Fragen wie SQL -Syntaxfehler und Leistungsprobleme können durch den Befehl erklären und langsam abfragen. 5) Die Leistungsoptimierungsmethoden umfassen die rationale Verwendung von Indizes, eine optimierte Abfrage und die Verwendung von Caches. Zu den Best Practices gehört die Verwendung von Transaktionen und vorbereiteten Staten

So erstellen Sie eine SQL -Datenbank So erstellen Sie eine SQL -Datenbank Apr 09, 2025 pm 04:24 PM

Das Erstellen einer SQL -Datenbank umfasst 10 Schritte: Auswählen von DBMs; Installation von DBMs; Erstellen einer Datenbank; Erstellen einer Tabelle; Daten einfügen; Daten abrufen; Daten aktualisieren; Daten löschen; Benutzer verwalten; Sichern der Datenbank.

See all articles