1. MySQL은 세개의 레이어로 구성되어있다.
1) Utility Layer
- SQL문법에 어긋난것이 없는지 검사한다.
- 해당 테이블이나 컬럼이 실제로 존재하는지 체크한다.
- 쿼리를 실행하는 유저의 권한을 체크한다.
2) SQL Layer
- 쿼리 실행 최적의 계획을 계산한다.
- 옵티마이저의 영역!!
- 쿼리실행 통계를 구하고 cost가 낮은 계획을 선택, 실행할 쿼리를 조정한다.
3) Storage Engine Layer
- 실제로 쿼리를 실행한다.
- 스토리지 엔진에는 여러 종류가 있으며, 가장 general하게 사용되는 것은 InnoDB엔진이다.
- InnoDB엔진은 동시성제어에 뛰어난 가장 보편적인 MySQL엔진이다.
- 엔진의 종류는 쿼리실행에 영향을 미칠 수 있다. 특화된 다른 엔진들도 존재하지만 역시 보통은 InnoDB를 많이들 쓴다.
2. MySQL 쿼리는 결과를 바로바로 유저에게 쓰는것이아니라,일단 버퍼에 담아둔다음에 보낸다. 이것이 성능의 병목이 될수도 있다.
댓글 없음:
댓글 쓰기