해당 글은 MySQL, MariaDB를 기준으로 작성합니다.
sql 처리과정은 다음과 같이 이루어 집니다.
사용자가 요청한 SQL을 가지고 데이터베이스에 저장된 데이터를 가져오는 역할을 수행하여 MySQL 엔진으로 보내줍니다.
스토리지 엔진의 종류
- InnoDB 엔진: OLTP 환경에서 자주 사용합니다. 데이터 무결성을 보장해 줍니다.
- MYISAM 엔진: 대량의 쓰기 트랜잭션이 발생할 때 사용하기 좋습니다. SELECT 속도가 상당히 빠른 편입니다.
- Memory: 메모리 데이터를 빠르게 읽을 때 사용하기 좋습니다.
사용자가 요청한 SQL 문을 받아 parsing과 Optimization을 진행하고 스토리지 엔진보낸 후, 스토리지 엔진에서 받은 데이터 중 불필요한 데이터를 가공하는 역할을 수행합니다.
Parser: MySQL 오브젝트로 SQL 최소 단위로 쪼개고 문법 검사를 수행합니다.
Preprocessor: MySQL 오브젝트로 SQL 문에 구조적인 문제가 없는지 확인해 줍니다.(Parsing)
Optimizer: DBMS에서 가장 중요한 역한을 수행하는 Optimizer는 최소 단위의 SQL 문을 받아 연산 과정을 단순화 하고 실행 계획을 수행합니다. (Optimization)
engine executor: Optimizer에서 실행 계획을 참고하여 스토리지 엔진에서 데이터를 받아옵니다.
참고한 서적
http://www.yes24.com/Product/Goods/102382080
참고 페이지
http://wiki.gurubee.net/pages/viewpage.action?pageId=24870953
수정할 부분이나 궁금하신게 있다면 언제나 질문해주세요!!!