Database/MySQL

    [Study] Real MySQL 8.0 - 9장(1) 옵티마이저와 힌트

    9.1. 개요 쿼리를 최적으로 실행하기 위해 각 테이블의 데이터가 어떤 분포로 저장되어 있는지 통계 정보를 참조하며, 그러한 기본 데이터를 비교해 최적의 실행 계획을 수립하는 작업이 필요하다. 대부분의 DBMS에서는 '옵티마이저'가 이러한 기능을 담당한다. 쿼리의 실행 계획을 수립하는 옵티마이저는 가장 복잡한 부분으로 알려져 있다. 9.1.1 쿼리 실행 절차 MySQL 서버에서 쿼리가 실행되는 과정은 크게 아래 세단계로 나눠진다. 1. 사용자로부터 요청된 SQL 문장을 잘게 쪼개서 MySQL 서버가 이해할 수 있는 수준으로 분리(파스 트리)한다. 2. SQL의 파싱정보(파스 트리)를 확인하면서 어떤 테이블을 읽고 어떤 인덱스를 이용해 테이블을 읽을지 선택한다. 3. 두번째 단계에서 결정된 테이블의 읽기 ..