728x90
1. 포그라운드 스레드(클라이언트 스레드)
사용자의 요청을 처리하기 때문에 클라이언트(사용자) 스레드라고 부른다.
생명주기
MySQL 서버에 접속된 클라이언트의 요청을 처리하기 때문에 스레드의 개수는 적어도 접속한 클라이언트 수만큼 존재한다.
사용자의 요청을 처리하면 스레드 캐시(Thead cache)로 되돌아가 새로운 요청을 기다린다.
기능 범위
사용자의 커넥션을 담당한다.
요청받은 데이터를 데이터 버퍼나 캐시로부터 읽어온다.
만약, 버퍼나 캐시에 없는 경우 디스크나 인덱스 파일로부터 데이터를 읽어온다.
MyISAM 테이블은 디스크 쓰기 작업까지 처리한다.
2. 백그라운드 스레드
백그라운드 스레드는 InnoDB의 여러 작업을 담당한다.
a. 버퍼의 데이터를 디스크에 기록(쓰기)
데이터 읽기는 주로 클라이언트 스레드에서 담당하기 때문에 백그라운드의 읽기 스레드는 많을 필요가 없다.
주역할은 '쓰기' 이기 때문에 적당한 쓰기 스레드가 필요하다.
일반적으로 쓰기 지연(버퍼링) 기능이 탑재되어 있어 쓰기 작업의 일괄 처리가 가능하다.
b. 로그를 디스크에 기록
c. 데이터를 버퍼로 읽기
d. 잠금이나 데드락 모니터링
728x90
'개발공부 > real MySQL' 카테고리의 다른 글
| [MySQL] MVCC(Multi Version Concurrency Control) (0) | 2024.07.08 |
|---|---|
| [MySQL] 쿼리 실행 구조 (0) | 2024.07.08 |
| MySQL 메모리 할당 (0) | 2024.07.07 |