>  기사  >  데이터 베이스  >  mysql 연결 풀이란 무엇입니까?

mysql 연결 풀이란 무엇입니까?

青灯夜游
青灯夜游원래의
2023-04-17 10:23:392978검색

mysql에서 연결 풀은 프로그램이 시작될 때 특정 수의 데이터베이스 연결을 생성하고 이러한 연결을 관리용 풀에 넣습니다. 프로그램은 연결을 동적으로 적용, 사용 및 해제합니다. 데이터베이스 연결 풀을 사용하는 이유: 1. 시스템 리소스 소비 감소를 기반으로 시스템 운영의 안정성을 높이는 리소스 재사용 2. 데이터베이스 연결 누출을 방지하기 위한 보다 빠른 응답 속도;

mysql 연결 풀이란 무엇입니까?

이 튜토리얼의 운영 환경: windows7 시스템, mysql8 버전, Dell G3 컴퓨터.

1. 풀링 기술

연결 풀은 연결 개체의 버퍼입니다. 프로그램이 연결을 사용해야 할 때 연결 풀에 연결이 있으면 연결을 저장합니다. 연결 풀에서 직접 얻을 수 있습니다. 연결을 다시 만들 필요가 없습니다. 연결 풀링을 사용하면 프로그램이 연결을 재사용할 수 있습니다.

풀링 기술은 객체 생성 수를 줄이고 프로그램의 응답 성능을 향상시킬 수 있습니다. 특히 동시성이 높은 시나리오에서는 그 효과가 더욱 두드러집니다. 객체 생성에 많은 양의 리소스가 필요하여 생성 시간이 길어지는 경우, 이후 재사용을 위해 풀링 기술을 사용하여 객체를 캐시하는 것을 고려할 수 있습니다. 일반적인 풀링 구성 요소에는 메모리 풀, 스레드 풀, 연결 풀 등이 포함됩니다.

2. 데이터베이스 연결 풀이란

정의: 데이터베이스 연결 풀은 프로그램이 시작될 때 일정 수의 데이터베이스 연결을 생성하고 이러한 연결을 풀에 넣어 관리하는 것입니다. 연결의 적용, 사용 및 해제는 프로그램에 의해 동적으로 수행됩니다. 데이터베이스는 Mysql을 참조할 뿐만 아니라 Redis용으로 연결 풀을 설계할 수도 있습니다.

3. 데이터베이스 연결 풀을 사용하는 이유

  • 리소스 재사용. 잦은 생성과 파괴로 인한 성능 오버헤드를 방지하고 시스템 리소스 소비를 줄이는을 바탕으로 시스템 운영의 안정성을 높입니다. 이는 주로 메모리 조각화 감소와 스레드 또는 프로세스의 임시 생성에 반영됩니다.

  • 빠른 응답 속도. 프로그램 시작 시 여러 개의 연결을 준비하므로 비즈니스 요청을 바로 사용할 수 있으므로 연결 생성, 권한 확인, 파기 등의 작업을 실시간으로 수행할 필요가 없어 시스템의 응답 시간이 단축됩니다.

  • 데이터베이스 연결 누출을 방지하기 위한 통합 연결 관리. 연결 점유 시간 초과 기간을 미리 설정할 수 있으며, 설정한 값 이상으로 연결을 사용하는 경우 해당 연결을 강제로 재활용할 수 있습니다.

4. MySQL 데이터베이스 연결 설정 프로세스

  • 클라이언트에서 연결 요청, TCP 3방향 핸드셰이크

  • Mysql 내부 권한 확인

  • SQL 실행문

    을 시작합니다.
  • Mysql 종료

  • 연결 끊김, TCP 웨이브 4번

4.1 연결 풀 사용 안 함

SQL 문이 실행될 때마다 TCP 3방향 핸드셰이크를 위해 연결이 설정되어야 함 , 권한 확인, 데이터베이스 작업, 데이터베이스 사용자 로그아웃 및 4웨이브 등의 작업


mysql 연결 풀이란 무엇입니까?

장점: 구현이 간단하고 연결 풀을 설계할 필요가 없습니다.
단점: 애플리케이션이 임시 파일을 자주 생성하고 파기합니다. 연결 개체로 인해 많은 양의 메모리 조각화가 발생합니다. 또한 연결이 닫힌 후 많은 수의 TIME_WAIT 상태가 나타납니다.

4.2 연결 풀 사용

프로그램이 시작되면 여러 개의 백업 연결을 생성하고 SQL이 사용 가능한 연결 작업을 얻을 때마다 속도가 빠릅니다.


mysql 연결 풀이란 무엇입니까?

5. 연결 풀의 작동 원리

  • 연결을 얻거나 연결 풀에서 연결을 생성합니다.

  • 연결을 사용하고 이후 연결 풀로 반환합니다.

  • 시스템에서 닫기 전에 모든 연결을 닫고 리소스를 해제하세요.

6. 스레드 풀과 연결 풀의 관계

mysql 연결 풀이란 무엇입니까? 일반적으로 스레드 풀의 수는 동일합니다. 연결 풀의 수로, 스레드는 연결을 사용한 후 연결을 반환합니다.

차이점:

    스레드 풀은 능동적으로 작업을 수행합니다
  • 연결 풀은 수동적으로 사용되며 하나의 연결은 하나의 스레드에만 적용 및 사용할 수 있습니다.
【관련 추천:

mysql 비디오 튜토리얼

위 내용은 mysql 연결 풀이란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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