요즘 mysql의 내부구조에 대해 공부하고 있습니다.
mysql의 외부에 관한 자료는 많아도 내부에 대한 자료는 없어서 힘드네요...;;
mysql의 내부구조에 보면 커넥션 풀에서 쓰레드 재사용(Thread Reuse)를 하는데
쓰레드를 재사용하는 이유가 뭔가요?
그리고 mysql의 커넥션 풀에서 말하는 쓰레드는 그냥 프로그래밍이나 운영체제에서 말하는 그 쓰레드가 아닌것 같거든요?
가르쳐 주시면 감사하겠습니다.
'쓰레드'의 의미는 클라이언트의 연결을 잡고 요청을 처리하는 '쓰레드'를 말합니다. 이 쓰레드를 필요할 때 만들고 필요없으면 없애고... 이렇게도 할 수 있습니다. 하지만 일정 개수의 쓰레드를 유지하는 이유는 쓰레드의 생성-사용-파괴-재생성... 이라는 싸이클은 비용이 많이 드는 작업입니다. 또한 파괴/재성성되는 시간도 무시할 수 없습니다.그래서 일정한 크기의 Pool에 쓰레드를 미리 생성해 놓고 요청이 오면 바로바로 요청을 처리할수 있게 재사용 가능한 상태로 유지합니다. (이 쓰레드를 유지하는 비용도 있습니다만 위 재생성하는 시간 및 비용에 비하면 크지 않다고 판단하는거죠)