>  기사  >  데이터 베이스  >  mysql 연결 수는 무엇을 의미합니까?

mysql 연결 수는 무엇을 의미합니까?

青灯夜游
青灯夜游원래의
2023-04-04 15:15:533959검색

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 연결 수를 300으로 설정할 수 있습니다. 해당 my.cnf에서 설정할 수 있습니다. 파일에서 이 매개변수를 설정합니다:

max_connections=300

MySQL 연결 수는 다음 MySQL 명령으로 확인할 수 있습니다:

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

위의 값 123은 MySQL에 액세스하는 최대 123개의 연결이 있음을 의미합니다. 동시에 VW 시스템에서. 또한 시스템의 현재 최대 연결 수가 합리적인지 평가하는 데 도움이 됩니다.

  • 값이 높으면 시스템에 동시에 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. : 이 값은 활성화된 연결 수를 나타냅니다. 이 값은 일반적으로 연결된 값보다 훨씬 낮습니다.

  • 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)

/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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.