일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 서브쿼리
- querydsl
- 추후정리
- 테스트메소드
- ㅔㄴ션
- 테스트
- appspec
- 컨테이너실행
- 2 > /dev/null
- MySQL
- 검색
- Query
- AuthenticationEntryPoint
- 외부키
- application.yml
- appspec.yml
- subquery
- docker명령어
- 예약
- 커밋메세지수정
- 네이티브쿼리
- ubuntu
- 메소드명
- 적용우선순위
- EC2
- 메세지수정
- WeNews
- 참조키
- foreignkey
- 포트
Archives
- Today
- Total
제뉴어리의 모든것
select 쿼리 수행 순서 본문
보통 프로그래머들이 사용하는 쿼리의 구문은 다음과 같다.
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' 카테고리의 다른 글
2024-08-18 MySql 관련 공부 (0) | 2024.08.18 |
---|---|
프로시저로 반복 데이터 Insert (0) | 2021.02.12 |
외래기 지정시 옵션 (0) | 2021.02.10 |
[SQL] GROUP, HAVING (0) | 2021.01.21 |
LEFT JOIN 과 RIGHT JOIN (0) | 2021.01.20 |