ホームページ >データベース >mysql チュートリアル >mysql 接続数とは何を指しますか?

mysql 接続数とは何を指しますか?

WBOY
WBOY転載
2023-05-26 13:41:131671ブラウズ

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

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   |
+-------------------------+-------+

この文は書き換えることができますas: VW の場合 システムでは、同時に最大 123 の接続が MySQL にアクセスできます。また、システム内の現在の最大接続数が妥当かどうかを評価するのにも役立ちます。

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

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

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

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

show variables like '%max_connection%'; 查看最大连接数
set global max_connections=1000;        重新设置最大连接数
<pre class="brush:bash;gutter:true;">mysql&gt; show status like &amp;#39;Threads%&amp;#39;; +-------------------+-------+ | 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)</pre><ul class=" list-paddingleft-2"> <li><p>Threads_connected: この値は、開いている接続の数を指します。</p></li> <li><p>Threads_running: この値は、アクティブ化された接続の数を指します。この値は、通常、接続されている値よりもかなり低くなります.</p></li> <li><p>Threads_connected と show processlist の結果が同じ場合、現在存在する接続の数を示します。正確に言うと、Threads_running は現在の同時実行数を表します</p></li> </ul> <p>データベースに現在設定されている最大接続数をクエリします</p><pre class="brush:bash;gutter:true;">&lt;code&gt;mysql&gt; show variables like &amp;#39;%max_connection%&amp;#39;;&lt;br/&gt;+-----------------------+-------+&lt;br/&gt;| Variable_name | Value |&lt;br/&gt;+-----------------------+-------+&lt;br/&gt;| extra_max_connections | |&lt;br/&gt;| max_connections | 2512 |&lt;br/&gt;+-----------------------+-------+&lt;br/&gt;2 rows in set (0.00 sec)&lt;br/&gt;&lt;/code&gt;</pre><p>/etc にデータベースの最大数を設定します/my.cnf 接続数</p><pre class="brush:js;toolbar:false">[mysqld] max_connections = 100 </pre><p>MySQL サーバーの堅牢な動作を保証するには、スレッド数を適切な範囲内に制御する必要があります。 Threads_createdは作成されたスレッド数を示しており、Threads_createdを見ることでMySQLサーバーのプロセス状況を確認することができます。 </p><pre class="brush:bash;gutter:true;">&lt;code&gt;mysql&gt; show global status like &amp;#39;Thread%&amp;#39;;&lt;br/&gt;+-------------------------+-------+&lt;br/&gt;| Variable_name | Value |&lt;br/&gt;+-------------------------+-------+&lt;br/&gt;| Threadpool_idle_threads | 0 |&lt;br/&gt;| Threadpool_threads | 0 |&lt;br/&gt;| Threads_cached | 29 |&lt;br/&gt;| Threads_connected | 13 |&lt;br/&gt;| Threads_created | 50 |&lt;br/&gt;| Threads_rejected | 0 |&lt;br/&gt;| Threads_running | 1 |&lt;br/&gt;+-------------------------+-------+&lt;br/&gt;7 rows in set (0.00 sec)&lt;br/&gt;&lt;/code&gt;</pre><p>MySQL サーバー構成ファイルで thread_cache_size を設定すると、クライアントが切断されたときに、このクライアントを処理しているサーバーのスレッドは破棄されるのではなく、次のクライアントに応答するためにキャッシュされます (キャッシュ番号が変更されていない場合)。上限に達しています)。 </p> <p>Threads_created は、作成されたスレッドの数を示します。Threads_created の値が大きすぎることが判明した場合、MySQL サーバーがスレッドを作成していることを示しますが、これも比較的リソースを大量に消費します。thread_cache_size を適切に増やすことができます。設定ファイル内の値を指定し、サーバーの thread_cache_size 値をクエリします。 : </p><pre class="brush:bash;gutter:true;">&lt;code&gt;mysql&gt; show variables like &amp;#39;thread_cache_size&amp;#39;;&lt;br/&gt;+-------------------+-------+&lt;br/&gt;| Variable_name | Value |&lt;br/&gt;+-------------------+-------+&lt;br/&gt;| thread_cache_size | 100 |&lt;br/&gt;+-------------------+-------+&lt;br/&gt;1 row in set (0.00 sec)&lt;br/&gt;&lt;/code&gt;</pre><p>コマンド: <code>show processlist;

root アカウントの場合、現在の接続を確認できます。すべてのユーザーの。別の通常のアカウントの場合は、自分が占有している接続のみが表示されます。

show processlist コマンドでは、最初の 100 項目のみがリストされます。すべてをリストしたい場合は、show full processlist;

mysql> show processlist;

コマンド: show を使用してください。 status;

mysql>show status like &#39;%变量名%&#39;;

変数名は次のとおりです:

  • Aborted_clients クライアントが接続を正しく閉じなかったために放棄された接続の数。死んだ。

  • Aborted_connects MySQL サーバーへの接続試行が失敗した回数。

  • Connections MySQL サーバーへの接続試行回数。

  • Created_tmp_tables ステートメントの実行時に作成された暗黙的な一時テーブルの数。

  • Delayed_insert_threads 使用中の遅延挿入プロセッサ スレッドの数。

  • Delayed_writes INSERT DELAYED で書き込まれた行の数。

  • 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_layed_rows」は、INSERT DELAY キューに書き込まれていない行の数を示します。

  • Open_tables 開いているテーブルの数。

  • Open_files 開いているファイルの数。

  • Open_streams 開いているストリームの数 (主にログ記録に使用されます)

  • Opened_tables 開かれているテーブルの数。

  • Questions サーバーに送信されたクエリの数。

  • Slow_queries long_query_time よりも長い時間がかかるクエリの数。

  • Threads_connected 現在開いている接続の数。

  • Threads_running スリープ状態ではないスレッドの数。

  • 稼働時間 サーバーが稼働していた時間 (秒単位)。

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

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。