select_type
-
Real MySQL [6-11] 실행계획 - 실행 계획 분석 시 주의 사항MySQL 2016. 12. 20. 21:58
본 게시물의 내용과 이미지는 도서 Real MySQL의 내용을 재구성하여 작성되었습니다. 저자, 출판사에 의해 저작권 문제 발생시 게시물이 비공개 될 수 있음을 알립니다. Select_type 칼럼의 주의 대상 DERIVED DERIVED는 FROM절에 사용된 서브 쿼리로부터 발생한 임시 테이블을 의미한다. 임시 테이블은 메모리에 저장될 수도 있고 디스크에 저장될 수도 있다. 일반적으로 메모리에 저장하는 경우에는 크게 성능에 영향을 미치지 않지만, 데이터의 크기가 커서 임시 테이블을 디스크에 저장하면 성능이 떨어진다. UNCACHEABLE SUBQUERY 쿼리의 FROM 절 이외의 부분에서 사용하는 서브 쿼리는 가능하면 MySQL 옵티마이저가 최대한 캐시되어 재사용될 수 있게 유도한다. 하지만 사용자 변..
-
Real MySQL [6-1] 실행계획 - id, select_type 칼럼MySQL 2016. 12. 6. 23:44
본 게시물의 내용과 이미지는 도서 Real MySQL의 내용을 재구성하여 작성되었습니다. 저자, 출판사에 의해 저작권 문제 발생시 게시물이 비공개 될 수 있음을 알립니다. 쿼리 실행 절차 (263p) 1) 사용자로부터 요청된 SQL 문장을 잘게 쪼개서 MySQL 서버가 이해할 수 있는 수준으로 분리한다. 2) SQL의 파싱 정보(파스 트리)를 확인하면서 어떤 테이블로부터 읽고 어떤 인덱스를 통해 테이블을 읽을지 선택한다. 3) 두 번째 단계에서 결정된 테이블의 읽기 순서나 선택된 인덱스를 이용해 스토리지 엔진으로부터 데이터를 가져온다. 첫 번째 단계를 SQL 파싱 이라고 하며, MySQL 서버의 "SQL 파서" 라는 모듈로 처리한다. SQL 문장이 문법적으로 잘못된 경우 이 단계에서 걸러진다. 또한 이 ..