ホームページ  >  記事  >  データベース  >  mysql 接続の数は何を意味しますか?

mysql 接続の数は何を意味しますか?

青灯夜游
青灯夜游オリジナル
2023-04-04 15:15:533981ブラウズ

mysql 接続の数は、データベースが同時に受け入れることができる顧客接続の最大数を指します。 MySQL 接続の数は、考慮する必要があるコンポーネントです。データベースの現在のパフォーマンスを最大化しながら、データベースを安全に実行するのに役立ちます。MySQL 接続の数は、クライアントの送信とデータベース内の処理に影響を与える可能性がある重要な構成です。データ量。接続数が少なすぎると接続要求がブロックされてタイムアウトが発生する可能性があり、接続数が多すぎると大量のメモリを占有してパフォーマンスが低下する可能性があります。

mysql 接続の数は何を意味しますか?

このチュートリアルの動作環境: Windows7 システム、mysql8 バージョン、Dell G3 コンピューター。

MySQL 接続数の概要

データベース接続数は、データベースが同時に受け入れることができる顧客接続の最大数です。

MySQL 接続の数は考慮する必要があるコンポーネントであり、データベースの現在のパフォーマンスを最大化しながら、データベースを安全に実行するのに役立ちます。これは、どのクライアントがデータベースに接続できるかを制御するために使用され、「最大接続数」とも呼ばれます。

MySQL 接続の数は、データベース内でクライアントによって転送および処理されるデータの量に影響を与える可能性がある重要な構成です。 MySQL 接続数が少なすぎると接続要求がブロックされてタイムアウトが発生する可能性があり、MySQL 接続数が多すぎると大量のメモリが占​​有されてパフォーマンスが低下する可能性があります。したがって、MySQL 接続の数は合理的に設定する必要があります。

MySQL 接続の数は、MySQL 構成ファイル my.cnf を通じて調整することも、次の MySQL コマンドを使用して動的に調整することもできます:

SET GLOBAL max_connections=300;

上記のコマンドは、MySQL 接続の最大数を設定できます。対応する my.cnf ファイルでこのパラメータを設定することもできます:

max_connections=300

MySQL 接続の数は、次の MySQL コマンドで確認できます:

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

上記の値 123 は、 VW システム上の同時接続の最大数 MySQL への接続は 123 です。また、システム内の現在の最大接続数が妥当かどうかを評価するのにも役立ちます。

  • 値が高い場合は、システムに多数のクライアントが MySQL にアクセスしている可能性があることを示します。現時点では、MySQL の最大接続数の調整を検討することをお勧めします。

  • 値が小さい場合は、システムの利用可能なリソースが不足していることを示します。現時点では、MySQL 接続の最大数を増やすことを検討できます。

一般に、MySQL 接続の数は考慮する必要があるコンポーネントであり、システムのセキュリティとパフォーマンスに重要な影響を与えます。したがって、MySQL のパフォーマンスを最大化するには、適切に調整する必要があります。

#Mysql の接続数を確認する方法 (総接続数、アクティブ数、最大同時接続数)

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: この値は、開いている接続の数を指します。

  • ##Threads_running: この値は、アクティブ化された接続の数を指します。この値は通常、 Connected value.
  • Threads_connected は show processlist と同じ結果を持ち、現在の接続数を示します。正確には、Threads_running は現在の同時実行数を表します。
  • データベースに現在設定されている最大接続数をクエリします。

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

in/etc /my. cnf

[mysqld]
max_connections = 100
でデータベース接続の最大数を設定します。MySQL サーバーのスレッド数は、適切な範囲内である必要があります。 MySQL サーバーの健全かつスムーズな動作を保証します。 Threads_createdは作成されたスレッド数を示しており、Threads_createdを見ることで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)
MySQL サーバー構成ファイルで thread_cache_size を設定すると、クライアントが切断されると、このクライアントを処理しているサーバーのスレッドは、破棄されるのではなく、次のクライアントに応答するためにキャッシュされます。 (キャッシュ数が上限に達しない場合に限ります)。

Threads_created は、作成されたスレッドの数を示します。Threads_created の値が大きすぎることが判明した場合は、MySQL サーバーがスレッドを作成しており、これも比較的リソースを大量に消費していることを示します。構成ファイル内の thread_cache_size 値を使用して、サーバーの 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视频教程

以上がmysql 接続の数は何を意味しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。