s2ul3.log
로그인
s2ul3.log
로그인
MySQL 쿼리 실행 과정
s2ul3
·
2022년 12월 21일
팔로우
0
sql
0
1. 쿼리 캐시 (Query Cache)
SQL 실행 결과를 메모리에 캐싱하는 역할
동일 SQL 실행 시, 이전 결과 즉시 반환
테이블의 데이터가 변경되면 캐싱된 데이터 삭제 필요 --> 동시 처리 성능 저하
--> MySQL 8.0부터는 쿼리 캐시가 완전히 제거됨.
2. 쿼리 파서 (Query Parser)
SQL 문장을 토큰으로 쪼개어 트리로 만듦. --> 만들어진 트리를 parse tree 라고 부름.
이 과정에서 쿼리 문장의 기본 문법 오류를 체크
3. 전처리기 (Preprocessor)
Parse tree를 기반으로 SQL의 문장 구조 체크
Parse tree의 토큰이 유효한지 체크
토큰을 하나씩 검사하며, 토큰에 해당하는 테이블 이름이나 컬럼등이 실제로 존재하는지 체크, 접근 권한에 대해서도 체크
4. 옵티마이저 (Optimizer)
SQL 실행을 최적화해서 실행 계획을 수립
규칙 기반 최적화
옵티마이저에 내장된 우선순위에 따라 점수를 매겨 실행 계획 수립
비용 기반 최적화
작업의 비용과 대상 테이블의 통계 정보를 활용하여 실행 계획 수립
5. 쿼리 실행 엔진 (Query execution engine)
옵티마이저가 만든 실행 계획대로 스토리지 엔진을 호출해서 레코드를 읽고 씀
6. 스토리지 엔진 (Storage engines)
쿼리 실행 엔진이 요청하는 대로 데이터를 디스크로 저장하거나 읽음
핸들러 API에 의해 동작됨
핸들러 라고도 부름
InnoDB, MyISAM
MySQL 8.0부터는 InnoDB 사용
s2ul3
statistics & computer science
팔로우
이전 포스트
SQL을 이용한 데이터 분석 1-2
다음 포스트
SQL - 파일 안의 레코드 구조
0개의 댓글
댓글 작성