집 >데이터 베이스 >MySQL 튜토리얼 >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> 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!