Heim  >  Artikel  >  Datenbank  >  Was bedeutet die Anzahl der MySQL-Verbindungen?

Was bedeutet die Anzahl der MySQL-Verbindungen?

青灯夜游
青灯夜游Original
2023-04-04 15:15:533901Durchsuche

Die Anzahl der MySQL-Verbindungen bezieht sich auf die maximale Anzahl von Kundenverbindungen, die die Datenbank gleichzeitig akzeptieren kann. Die Anzahl der MySQL-Verbindungen ist eine Komponente, die berücksichtigt werden muss. Sie kann dazu beitragen, dass die Datenbank sicher läuft und gleichzeitig die aktuelle Leistung der Datenbank maximiert wird. Die Anzahl der MySQL-Verbindungen ist eine wichtige Konfiguration, die sich auf die Client-Übertragung und -Verarbeitung in der Datenbank auswirken kann. Datenvolumen. Wenn die Anzahl der Verbindungen zu gering ist, wird die Verbindungsanforderung möglicherweise blockiert und es kann zu einer Zeitüberschreitung kommen. Wenn die Anzahl der Verbindungen zu groß ist, wird viel Speicher belegt, was zu einer geringen Leistung führt.

Was bedeutet die Anzahl der MySQL-Verbindungen?

Die Betriebsumgebung dieses Tutorials: Windows7-System, MySQL8-Version, Dell G3-Computer.

Einführung in die Anzahl der MySQL-Verbindungen

Die Anzahl der Datenbankverbindungen ist die maximale Anzahl von Kundenverbindungen, die die Datenbank gleichzeitig akzeptieren kann.

Die Anzahl der MySQL-Verbindungen ist eine Komponente, die berücksichtigt werden muss. Sie kann dazu beitragen, dass die Datenbank sicher läuft und gleichzeitig die aktuelle Leistung der Datenbank maximiert. Es wird verwendet, um zu steuern, welche Clients eine Verbindung zur Datenbank herstellen können, auch bekannt als „Maximale Verbindung“.

Die Anzahl der MySQL-Verbindungen ist eine wichtige Konfiguration, die sich auf die vom Client in der Datenbank übertragene und verarbeitete Datenmenge auswirken kann. Wenn die Anzahl der MySQL-Verbindungen zu gering ist, wird die Verbindungsanforderung möglicherweise blockiert und es kann zu einer Zeitüberschreitung kommen. Wenn die Anzahl der MySQL-Verbindungen zu groß ist, wird viel Speicher belegt, was zu einer geringen Leistung führt. Daher muss die Anzahl der MySQL-Verbindungen angemessen eingestellt werden.

Die Anzahl der MySQL-Verbindungen kann über die MySQL-Konfigurationsdatei my.cnf angepasst werden, oder Sie können den folgenden MySQL-Befehl zur dynamischen Anpassung verwenden:

SET GLOBAL max_connections=300;

Der obige Befehl kann die maximale Anzahl von MySQL-Verbindungen auf 300 oder Sie festlegen kann es in der entsprechenden my.cnf festlegen. Setzen Sie diesen Parameter in der Datei:

max_connections=300

Die Anzahl der MySQL-Verbindungen kann mit dem folgenden MySQL-Befehl überprüft werden:

SHOW STATUS LIKE 'Max_used_connections';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| Max_used_connections    | 123   |
+-------------------------+-------+

Der obige Wert 123 bedeutet, dass bis zu 123 Verbindungen auf MySQL zugreifen gleichzeitig auf dem VW-System. Es hilft auch zu beurteilen, ob die aktuelle maximale Anzahl von Verbindungen im System angemessen ist:

  • Wenn der Wert hoch ist, deutet dies darauf hin, dass das System zu diesem Zeitpunkt möglicherweise über eine große Anzahl von Clients verfügt, die gleichzeitig auf MySQL zugreifen

  • Wenn der Wert klein ist, bedeutet dies, dass die verfügbaren Ressourcen des Systems nicht vollständig genutzt werden können. In diesem Fall können Sie eine Erhöhung der maximalen Anzahl in Betracht ziehen von MySQL-Verbindungen.

Generell ist die Anzahl der MySQL-Verbindungen eine Komponente, die berücksichtigt werden muss und einen wichtigen Einfluss auf die Systemsicherheit und -leistung hat. Daher muss es entsprechend angepasst werden, um die MySQL-Leistung zu maximieren.

So überprüfen Sie die Anzahl der Verbindungen in MySQL (Gesamtzahl der Verbindungen, aktive Anzahl, maximale gleichzeitige Anzahl)

show variables like '%max_connection%'; 查看最大连接数
set global max_connections=1000;        重新设置最大连接数
mysql> show status like  'Threads%';
+-------------------+-------+
| Variable_name     | Value |
+-------------------+-------+
| Threads_cached    | 32    |
| Threads_connected | 10    |
| Threads_created   | 50    |
| Threads_rejected  | 0     |
| Threads_running   | 1     |
+-------------------+-------+
5 rows in set (0.00 sec)
  • Threads_connected: Dieser Wert bezieht sich auf die Anzahl der offenen Verbindungen.

  • Threads_running : Dieser Wert bezieht sich auf die Anzahl der aktivierten Verbindungen. Dieser Wert ist im Allgemeinen viel niedriger als der verbundene Wert.

  • Threads_connected hat das gleiche Ergebnis wie show Processlist und gibt die aktuelle Anzahl der Verbindungen an. Um genau zu sein, stellt Threads_running die aktuelle Anzahl der Parallelitäten dar.

Fragen Sie die maximale Anzahl von Verbindungen ab, die derzeit in der Datenbank festgelegt sind.

mysql> show variables like '%max_connection%';
+-----------------------+-------+
| Variable_name         | Value |
+-----------------------+-------+
| extra_max_connections |       |
| max_connections       | 2512  |
+-----------------------+-------+
2 rows in set (0.00 sec)

Legen Sie die maximale Anzahl von Verbindungen in der Datenbank in /etc/my.cnf fest

[mysqld]
max_connections = 100
MySQL Die Anzahl der Threads auf dem Server muss in einem angemessenen Bereich liegen, um den gesunden und reibungslosen Betrieb des MySQL-Servers sicherzustellen. Threads_created gibt die Anzahl der erstellten Threads an. Durch Anzeigen von Threads_created können Sie den Prozessstatus des MySQL-Servers anzeigen.
mysql> show global status like 'Thread%';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| Threadpool_idle_threads | 0     |
| Threadpool_threads      | 0     |
| Threads_cached          | 29    |
| Threads_connected       | 13    |
| Threads_created         | 50    |
| Threads_rejected        | 0     |
| Threads_running         | 1     |
+-------------------------+-------+
7 rows in set (0.00 sec)
Wenn wir thread_cache_size in der MySQL-Serverkonfigurationsdatei festlegen und die Verbindung zum Client getrennt wird, wird der Thread des Servers, der diesen Client verarbeitet, zwischengespeichert, um auf den nächsten Client zu antworten, anstatt zerstört zu werden (vorausgesetzt, die Cache-Nummer hat dies nicht getan). (Obergrenze erreicht).
Threads_created gibt die Anzahl der erstellten Threads an. Wenn festgestellt wird, dass der Wert „Threads_created“ zu groß ist, bedeutet dies, dass der MySQL-Server Threads erstellt hat, was ebenfalls relativ ressourcenintensiv ist. Sie können den Wert „thread_cache_size“ in der Konfigurationsdatei erhöhen entsprechend und fragen Sie den Wert des Servers thread_cache_size:

mysql> show variables like 'thread_cache_size';
+-------------------+-------+
| Variable_name     | Value |
+-------------------+-------+
| thread_cache_size | 100   |
+-------------------+-------+
1 row in set (0.00 sec)

ab

命令:show processlist; 

如果是root帐号,你能看到所有用户的当前连接。如果是其它普通帐号,只能看到自己占用的连接。 

show processlist命令只列出前100条,如果想全列出请使用show full processlist; 

mysql> show processlist;

命令:show status;

mysql>show status like '%变量名%';

变量名如下:

  • Aborted_clients 由于客户没有正确关闭连接已经死掉,已经放弃的连接数量。

  • Aborted_connects 尝试已经失败的MySQL服务器的连接的次数。

  • Connections 试图连接MySQL服务器的次数。

  • Created_tmp_tables 当执行语句时,已经被创造了的隐含临时表的数量。

  • Delayed_insert_threads 正在使用的延迟插入处理器线程的数量。

  • Delayed_writes 用INSERT DELAYED写入的行数。

  • Delayed_errors 用INSERT DELAYED写入的发生某些错误(可能重复键值)的行数。

  • Flush_commands 执行FLUSH命令的次数。

  • Handler_delete 请求从一张表中删除行的次数。

  • Handler_read_first 请求读入表中第一行的次数。

  • Handler_read_key 请求数字基于键读行。

  • Handler_read_next 请求读入基于一个键的一行的次数。

  • Handler_read_rnd 请求读入基于一个固定位置的一行的次数。

  • Handler_update 请求更新表中一行的次数。

  • Handler_write 请求向表中插入一行的次数。

  • Key_blocks_used 用于关键字缓存的块的数量。

  • Key_read_requests 请求从缓存读入一个键值的次数。

  • Key_reads 从磁盘物理读入一个键值的次数。

  • Key_write_requests 请求将一个关键字块写入缓存次数。

  • Key_writes 将一个键值块物理写入磁盘的次数。

  • Max_used_connections 同时使用的连接的最大数目。

  • Not_flushed_key_blocks 在键缓存中已经改变但是还没被清空到磁盘上的键块。

  • Not_flushed_delayed_rows 在INSERT DELAY队列中等待写入的行的数量。

  • Open_tables 打开表的数量。

  • Open_files 打开文件的数量。

  • Open_streams 打开流的数量(主要用于日志记载)

  • Opened_tables 已经打开的表的数量。

  • Questions 发往服务器的查询的数量。

  • Slow_queries 要花超过long_query_time时间的查询数量。

  • Threads_connected 当前打开的连接的数量。

  • Threads_running 不在睡眠的线程数量。

  • Uptime 服务器工作了多长时间,单位秒。

【相关推荐:mysql视频教程

Das obige ist der detaillierte Inhalt vonWas bedeutet die Anzahl der MySQL-Verbindungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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