>일반적인 문제 >mysql의 최대 연결 수는 얼마입니까?

mysql의 최대 연결 수는 얼마입니까?

百草
百草원래의
2023-07-06 14:49:2211710검색

최대 mysql 연결 수는 151개입니다. mysql 데이터베이스에 대한 최대 연결 수는 mysql 데이터베이스와 동시에 설정할 수 있는 최대 연결 수를 나타냅니다. 이 수는 트래픽이 많은 웹 애플리케이션과 대규모 엔터프라이즈 애플리케이션에 중요합니다. 초과되면 새 연결이 구축되지 않아 애플리케이션이 충돌하거나 성능 문제가 발생하게 됩니다.

mysql의 최대 연결 수는 얼마입니까?

이 튜토리얼의 운영 체제: Windows 10 시스템, mysql 버전 8.0, Dell G3 컴퓨터.

MySQL 데이터베이스에 대한 최대 연결 수는 MySQL 데이터베이스에 동시에 설정할 수 있는 최대 연결 수를 나타냅니다. 이 숫자는 트래픽이 많은 웹 애플리케이션과 대규모 엔터프라이즈 애플리케이션에 매우 중요합니다. 최대 연결 수를 초과하면 새 연결을 설정할 수 없어 애플리케이션이 중단되거나 성능 문제가 발생합니다.

일반적으로 MySQL의 기본 최대 연결 수는 151이고 최대 연결 수는 16384에 이릅니다.

mysql 최대 연결 수 확인:

show variables like '%max_connections%’;

현재 사용된 실제 최대 연결 수 확인:

show global status like 'Max_used_connections';

실제 연결 수는 최대 연결 수의 85%가 더 적합하므로 다음을 수행할 수 있습니다. 실제 연결 수를 기준으로 최대 연결 수를 설정합니다. (최대 연결 수를 1024를 초과하도록 설정하려면 파일 설명자의 상한도 수정해야 합니다.)

생각: 연결 수를 최대(16384)로 설정하는 것이 가장 좋습니까?
MySQL 서버가 동시에 많은 연결을 지원할 수 있도록 연결 수를 MySQL이 지원하는 최대 연결 수로 설정했으며,

MySQL: ERROR 1040: Too many connections

오류 메시지도 거의 발생하지 않습니다.

그러나 서버의 리소스 제한으로 인해 max_connections를 너무 크게 설정하면 많은 연결 유지로 인해 데이터베이스가 서버 리소스를 소진하고 응답하지 않게 됩니다. 각각의 추가 연결마다 MySQL은 연결을 유지하기 위해 스레드를 생성하고 스레드 간 전환 시 CPU는 해당 스레드의 컨텍스트 정보를 다시 로드해야 하기 때문에 연결 수가 계속 증가하면 CPU는 계속해서 스레드 간 전환을 수행합니다. 각 연결에 대한 쿼리입니다.

따라서 max_connections 값을 더 크게 설정할 경우 너무 많은 연결을 허용하여 데이터베이스 성능이 저하되거나 리소스 소진으로 인해 응답하지 못할 위험이 있을 수 있습니다.

데이터베이스 연결 풀

데이터베이스 연결 풀은 나중에 데이터베이스에 대한 요청이 필요할 때 연결을 재사용할 수 있도록 데이터베이스 연결 캐시를 유지 관리합니다. 연결 풀링은 데이터베이스에서 명령 실행 성능을 향상시키는 데 사용됩니다. 데이터베이스에 접속할 때마다 TCP 연결을 거쳐야 하기 때문에 데이터베이스에 접속할 때마다 접속했다가 닫았다가 다음에 접속할 때 다시 접속해야 한다면 낭비가 되기 때문이다. 그래서 생성된 커넥션을 커넥션 풀에 넣어두고, 필요할 때 가져오고, 필요하지 않을 때는 다시 커넥션 풀에 넣습니다(시간과 공간 교환).

애플리케이션이 연결 풀에서 요청한 연결 수가 최대 연결 수를 초과하면 해당 요청이 대기 대기열에 추가됩니다.

생각: 데이터베이스 연결 풀이 클수록 좋은가요?
최대 MySQL 연결 수와 데이터베이스 연결 풀을 동일하게 설정하는 것이 가장 좋지 않을까요? 우리 서비스에는 사용 가능한 최대 연결 수가 보장될 수 있습니다. 데이터베이스 요청이 올 때마다 무료 연결을 사용할 수 있습니다.

이 경우 위에서 발생한 문제로 다시 돌아갑니다(이로 인해 데이터베이스 연결을 너무 많이 유지하여 서버 성능이 저하되거나 리소스 소진으로 인해 응답하지 못할 위험이 발생할 수 있음)

위 내용은 mysql의 최대 연결 수는 얼마입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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