관리 메뉴

제뉴어리의 모든것

select 쿼리 수행 순서 본문

MySql

select 쿼리 수행 순서

제뉴어리맨 2021. 2. 14. 15:29

보통 프로그래머들이 사용하는 쿼리의 구문은 다음과 같다.

select
from 
where
group by
having
order by

 

그리고 의외로 이 쿼리가 수행 될때 어떤 순서로 실행이 되는지 모르는 사람들이 많다.

결과부터 말하자면 수행 순서는 다음과 같다.

 

from -> where -> group by -> having -> select -> order by 

 

각 순서에서 수행가는 기능은 다음과 같다.

 

- from
실존 테이블인지, select update insert 권한이 있는지 확인

 

- where 
어떤 조건인지 체크

 

- group by
가져 온 로우들을 어떤 방식으로 group by 할건지 체크

 

- having
group by 한것들 중에 버려야할 데이터가 있는지 체크

- select
가져 온 로우중에 어떤 컬럼을 출력해야할지

이 순서이기 때문에 *이나 특정 컬럼만 가져오나 io 비용이 같다
그렇지만 select절에 있는 컬럼들이 모두 인덱스에 담겨있을때는
얘기가 달라지지만 인덱스를 제외하고 생각하면 같음

- order by
가져온 로우들을 정렬

 

출처 : 유투브 SQL전문가 정미나

 

'MySql' 카테고리의 다른 글

프로시저로 반복 데이터 Insert  (0) 2021.02.12
외래기 지정시 옵션  (0) 2021.02.10
[SQL] GROUP, HAVING  (0) 2021.01.21
LEFT JOIN 과 RIGHT JOIN  (0) 2021.01.20
@Query 어노테이션에서 Native SQL 사용법  (0) 2021.01.14