본문 바로가기
MySQL Admin Guide/MySQL Ver.5.1 Admin Guide

1장. MySQL 아키텍쳐 : (2) MySQL 쿼리 수행경로

by 모모레 2009. 2. 18.

MySQL은 다음 그림과 같은 쿼리수행 경로를 가진다.

사용자 삽입 이미지

[그림 1-3]

 


[그림 1-3]은 MySQL에서 수행되는 쿼리의 수행 경로를 보여주는 그림이다.

Application에서 Select, Update, Delete, insert와 같은 DML문이 실행될때 어떻게 처리되는지 그 과정을 살펴보도록 하자.

 먼저 Select의 경우 Query Cache영역에 이전에 실행된 같은 sql문이 있는지 확인하고 Query Cache에 그 값이 있으면 쿼리를 실행하지 않고 Query Cache에 있는 값을 전달하여 완료한다. 만약 없을 경우에는 select문을 Parser로 보내서 쿼리 파싱을 진행하고 Optimizer로 보내 최적화를 하여 실행계획을 만든 후, Executor를 통해 쿼리를 실행한다. Select는 실행 후에 그 값을 Query Cache에 저장하고, 그 다음에 Application에 결과값을 보낸다.

Update,Delete, Insert와 같은 일반 DML문은 Query Cache를 확인하지 않고, 곧장 Parser로 간다. 거기서 파싱을 한 후 Optimizer로 가서 최적화를 하고, 실행계획을 만든 후, Executor가 그 쿼리를 실행하게 된다. 이 후 결과 값은 Application으로 곧장 보낸다.

MySQL이 실행하는 문장들 경우에는 Parser를 거치지 않고 Optimizer로 바로 가서 최적화 되어 실행되는 구문들도 있다.