포그라운드 스레드의 최소 수 : MySQL 서버에 접속된 클라이언트 수만큼 존재
클라이언트 사용자가 작업을 마치고 커넉센열 종료하면 해당 커넥션을 담당하던 스레드는 Thread cache
로 돌아간다.
Thread cache
에 이미 일정 개수 이상의 스레드가 대기 중이라면
스레드 캐시에 넣지않고 스레드를 종료시킨다.
포그라운드 스레드는 데이터를 MySQL의 데이터 버퍼나 캐시로부터 가져온다. 버퍼나 캐시에 없는 경우에는 직접 디스크의 데이터나 인덱스 파일로부터 데이터를 읽어온다.
InnoDB
테이블은 데이터 버퍼, 캐시까지만 포그라운드 스레드가 처리. 나머지 버퍼로부터 디스크까지 기록하는 작업은 백그라운드 스레드가 처리한다.
사용자 스레드 = 포그라운드 스레드
클라이언트 스레드의 수와 무관하게 하나의 메모리 공간만 할당. 모든 스레드에 의해 공유
클라이언트 스레드가 쿼리를 처리하는데 사용하는 메모리 영역 (커넥션 버퍼, 정렬 버퍼)
로컬 메모리는 각 클라이언트 스레드별로 독립적으로 할당되며 절대 공유되어 사용되지 않는다는 특징
각 쿼리의 용도별로 필요할 때만 공간이 할당되고 필요하지 않은 경우에는 MySQL이 메모리 공간을 할당조차도 하지않을 수 있다.