24.1.1 MySQL Threads
MySQL 서버는 다음 스레드를 만듭니다.
연결 관리자 스레드는 서버가 대기하고있는 네트워크 인터페이스에서 클라이언트의 연결 요청을 처리합니다. 모든 플랫폼에서 하나의 관리자 스레드가 TCP / IP 연결 요청을 처리합니다. Unix에서는이 관리자 스레드는 Unix 소켓 파일의 연결 요청도 처리합니다. Windows에서는 하나의 관리자 스레드가 공유 메모리 연결 요청을 처리하고 다른 매니저 스레드가 명명 된 파이프 연결 요청을 처리합니다. 서버가 대기하고 있지 않는 인터페이스를 처리하기위한 스레드를 생성하지 않습니다. 예를 들어, Windows 서버에서 명명 된 파이프 연결 지원이 활성화되어 있지 않은 경우 이러한 연결을 처리하는 스레드는 생성되지 않습니다.
연결 관리자 스레드는 각 클라이언트 연결을 그 연결의 인증 및 요청을 처리하는 전용 스레드에 연결합니다. 관리자 스레드는 필요에 따라 새로운 스레드를 생성하지만 먼저 스레드 캐시를 조사해 연결에 사용할 수있는 스레드가 포함되어 있는지를 확인하여 그것을 해결하는 것을 시도합니다. 연결이 완료되면 스레드 캐시가 가득 않으면 그 스레드가 스레드 캐시에 반환됩니다.
스레드 리소스를 제어하는 매개 변수의 조정 내용은 섹션 8.11.5.1 「MySQL의 클라이언트 연결을위한 스레드 사용 " 을 참조하십시오.
마스터 복제 서버에서는 슬레이브 서버에서의 연결은 클라이언트 연결처럼 취급되어 연결되어있는 슬레이브 당 하나의 스레드가 있습니다.
슬레이브 복제 서버는 마스터 서버에 연결하여 거기에서 업데이트를 읽을 수있는 I / O 스레드가 시작됩니다. 마스터에서 읽은 업데이트를 적용하기위한 SQL 쓰레드가 시작됩니다. 이 두 스레드는 별도로 실행되며 별도로 시작하고 중지 할 수 있습니다.
신호 스레드는 모든 신호를 처리합니다. 일반적으로이 스레드는 경보 처리 및 장시간 유휴 연결을 제한시키는
process_alarm()
의 호출도합니다.InnoDB
가 사용되는 경우 기본적으로 추가 읽기 스레드와 쓰기 스레드가 존재합니다. 이 수는innodb_read_io_threads
및innodb_write_io_threads
매개 변수에 의해 제어됩니다. 섹션 14.12 "InnoDB 부팅 옵션 및 시스템 변수" 를 참조하십시오.mysqld가
-DUSE_ALARM_THREAD
를 사용하여 컴파일 된 경우 알람을 처리하는 전용 스레드가 생성됩니다. 이것이 사용되는 것은sigwait()
에 문제가있는 시스템의 경우와 전용 신호 처리 스레드를 사용하지 않고 응용 프로그램thr_alarm()
코드를 사용하는 경우입니다.서버가
--flush_time=
옵션을 지정해 기동 된 경우val
val
초마다 모든 테이블을 플러시하는 전용 스레드가 생성됩니다.INSERT DELAYED
문이 실행 된 각 테이블에는 자신의 스레드가 생성됩니다. 섹션 13.2.5.2 "INSERT DELAYED 구문" 을 참조하십시오.이벤트 스케줄러가 활성화되어 있으면 스케줄러의 하나 스레드 및 현재 실행되고있는 각 이벤트의 각각의 스레드가 존재합니다. 섹션 20.4.1 "이벤트 스케줄러 개요" 를 참조하십시오.
mysqladmin processlist 연결, INSERT DELAYED
복제 및 이벤트 스레드만을 표시합니다.