SQL 구문이 데이터 저장소에 이르기 까지딥상어동의 딥한 SQL/LV2.중급쿼리2021. 6. 26. 14:15
Table of Contents
http://www.yes24.com/Product/Goods/24089836
본 도서를 보고 작성하였습니다.
0. 파서(parser)
SQL 구문을 분석하는 것이다. 예를 들어, 아래와 같이 select에 아무런 컬럼을 선택하지 않은 경우 파서 단계에서 탈락하게 된다.
SELECT FROM t1
1. 옵티마이저(optimizer)
인덱스, 데이터 편햔 정도 등 다양한 요소를 고려하여 "수많은 실행계획" 중 가장 낮은 비용을 가진 실행 계획을 선택한다. 사람이 직접하기보다는 기계가 해주는 "자동화"처리이다.
2. 카탈로그 매니저(catalog manager)
옵티마이저가 장군이라면 카탈로그 매니저는 책사라고 할 수 있다. A 테이블은 index가 뭐고, 행수는 얼마나 있고 이런 "통계정보"들을 전달해주는 것을 카탈로그 매니저라고 한다.
따라서, 테이블이 바뀌는 경우 카탈로그 정보를 업데이트할 필요가 있다.
--MySQL
ANALYZE TABLE 스키마이름.테이블이름;
3. 플랜평가
마지막으로, 옵티마이저가 여러 실행 계획 중 하나를 "선택"하는 행위를 의미한다.
'딥상어동의 딥한 SQL > LV2.중급쿼리' 카테고리의 다른 글
[SQL] 언어가 가진 철학 (0) | 2021.06.27 |
---|---|
[SQL] Nested Loop Join (0) | 2021.06.27 |
왜 버퍼를 사용하는가? (0) | 2021.06.26 |
[MSSQL] while (1) 기본 사용법 - declare, set, while, begin, end, print (0) | 2021.03.29 |
[MSSQL] With (Nolock)을 사용하는 이유 (2) | 2021.03.27 |
@딥상어동의 딥한생각 :: 딥상어동의 딥한생각
제 블로그에 와주셔서 감사합니다! 다들 오늘 하루도 좋은 일 있으시길~~
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!