Maison  >  Article  >  base de données  >  Que signifie le nombre de connexions MySQL ?

Que signifie le nombre de connexions MySQL ?

青灯夜游
青灯夜游original
2023-04-04 15:15:533959parcourir

Le nombre de connexions mysql fait référence au nombre maximum de connexions clients que la base de données peut accepter en même temps. Le nombre de connexions MySQL est un composant qui doit être pris en compte. Il peut aider la base de données à fonctionner en toute sécurité tout en maximisant les performances actuelles de la base de données. Le nombre de connexions MySQL est une configuration importante qui peut affecter la transmission et le traitement du client dans la base de données. Volume de données. Si le nombre de connexions est trop petit, la demande de connexion peut être bloquée et un délai d'attente peut se produire ; si le nombre de connexions est trop grand, une grande quantité de mémoire sera occupée, ce qui entraînera de faibles performances.

Que signifie le nombre de connexions MySQL ?

L'environnement d'exploitation de ce tutoriel : système windows7, version mysql8, ordinateur Dell G3.

Introduction au nombre de connexions mysql

Le nombre de connexions à la base de données est le nombre maximum de connexions clients que la base de données peut accepter en même temps.

Le nombre de connexions MySQL est un élément à prendre en compte. Il peut aider la base de données à fonctionner en toute sécurité tout en maximisant les performances actuelles de la base de données. Il est utilisé pour contrôler quels clients peuvent se connecter à la base de données, également appelé « Connexion maximale ».

Le nombre de connexions MySQL est une configuration importante qui peut affecter la quantité de données transférées et traitées par le client dans la base de données. Si le nombre de connexions MySQL est trop petit, la demande de connexion peut être bloquée et un délai d'attente peut se produire ; si le nombre de connexions MySQL est trop grand, une grande quantité de mémoire sera occupée, entraînant de faibles performances. Par conséquent, le nombre de connexions MySQL doit être défini de manière raisonnable.

Le nombre de connexions MySQL peut être ajusté via le fichier de configuration MySQL my.cnf, ou vous pouvez utiliser la commande MySQL suivante pour ajuster dynamiquement :

SET GLOBAL max_connections=300;

La commande ci-dessus peut définir le nombre maximum de connexions MySQL à 300, ou vous Vous pouvez le définir dans le my.cnf correspondant. Définissez ce paramètre dans le fichier :

max_connections=300

Le nombre de connexions MySQL peut être vérifié avec la commande MySQL suivante :

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

La valeur ci-dessus 123 signifie qu'il y a jusqu'à 123 connexions accédant à MySQL sur le système VW en même temps. Cela permet également d'évaluer si le nombre maximum actuel de connexions dans le système est raisonnable :

  • Si la valeur est élevée, cela indique que le système peut avoir un grand nombre de clients accédant à MySQL en même temps. , il est préférable d'envisager d'ajuster le nombre maximum de connexions pour MySQL

  • Si la valeur est faible, cela indique que les ressources disponibles du système ne peuvent pas être pleinement utilisées. Dans ce cas, vous pouvez envisager d'augmenter le nombre maximum. des connexions MySQL.

De manière générale, le nombre de connexions MySQL est un élément à prendre en compte et il a un impact important sur la sécurité et les performances du système. Par conséquent, il doit être ajusté de manière appropriée pour maximiser les performances de MySQL.

Comment vérifier le nombre de connexions dans Mysql (nombre total de connexions, nombre actif, nombre maximum simultané)

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 : Cette valeur fait référence au nombre de connexions ouvertes

  • Threads_running. : Cette valeur fait référence au nombre de connexions activées, cette valeur est généralement bien inférieure à la valeur connectée.

  • Threads_connected a le même résultat que show processlist, indiquant le nombre actuel de connexions. Pour être précis, Threads_running représente le nombre actuel de concurrence

Requérez le nombre maximum de connexions actuellement définies dans la base de données

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

Définissez le nombre maximum de connexions dans la base de données dans /etc/my.cnf

[mysqld]
max_connections = 100
MySQL Le nombre de threads sur le serveur doit être dans une plage raisonnable pour garantir le bon fonctionnement du serveur MySQL. Threads_created indique le nombre de threads créés. En affichant Threads_created, vous pouvez visualiser l'état du processus du serveur MySQL.
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)

Si nous définissons thread_cache_size dans le fichier de configuration du serveur MySQL, lorsque le client est déconnecté, le thread du serveur traitant ce client sera mis en cache pour répondre au client suivant au lieu d'être détruit (à condition que le numéro de cache n'ait pas été détruit). été atteinte) limite supérieure).

Threads_created indique le nombre de threads créés. Si la valeur Threads_created s'avère trop grande, cela indique que le serveur MySQL a créé des threads, ce qui est également relativement gourmand en ressources. Vous pouvez augmenter la valeur thread_cache_size dans le fichier de configuration. de manière appropriée et interrogez la valeur du serveur thread_cache_size :

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

命令: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视频教程

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn