SQL 문법의 동작 순서 외우는 법
- 게토레이
- 랮혼애ㅣ
- fowghsdol
- 각 문법의 첫글자를 딴 형태로 만든 암기 방식이다.
실제 동작 순서는 다음과 같다.
- from
- on(join)
- where
- group by
- having
- select
- distinct
- order by
- limit/offset
From
- 쿼리의 작업 대상이 되는 기본 테이블을 결정한다.
- 최초 쿼리가 동작할 테이블/뷰/파티션/서브쿼리가 정확히 어딘지를 결정한다.
On(Join)
- 조인 순서 최적화
- 조인 알고리즘 선택
- 별도의 글로 작성해야 함. 깊이가 깊음. (작성예정)
Where
- FROM/Join 절로 생성된 모든 행에 대해 필터링을 수행한다.
- 인덱스를 사용 가능한 (sargable) 조건들에 대하여, 인덱스를 사용하여 탐색한다.
- 집계함수를 사용할 수 없다.
- select 절에서 정의한 alias는 참조할 수 없다.
- 아직 select를 처리하기 전이다.
Group by
- Group By 문법에 맞게, Grouping을 수행한다.
- 그룹이 형성된 직후, 해당 그룹에 대해 SUM(), AVG(), COUNT() 와 같은 집계 함수를 계산한다.
- 그리디하게 순회하면서 동시에 값을 계산해나간다고 보면 된다.
- Group By 절이 없을 경우, 이때 전체 결과 집합을 단일 그룹으로 간주하여, 집계 결과 하나만을 계산한다.
Having
- 그룹 단위로 Having 조건식을 평가하여, 조건에 맞지 않는 그룹을 제거한다.
Select
- 실제로 출력할 값들을 생성한다.
Distinct
- 중복된 행들을 제거한다.
Union/Union All
- 집합 연산을 수행한다.
Order by
- 정렬을 적용한다.
Limit/Offset
- 페이지네이션을 위한 Limit/Offset 계산을 수행한다.
'CS Repo > DB' 카테고리의 다른 글
면접 대비용 데이터베이스 정리 (0) | 2025.03.07 |
---|