일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 메세지수정
- appspec
- 메소드명
- 적용우선순위
- 검색
- subquery
- 네이티브쿼리
- 예약
- 외부키
- foreignkey
- 추후정리
- ㅔㄴ션
- 서브쿼리
- 컨테이너실행
- 포트
- MySQL
- 2 > /dev/null
- docker명령어
- ubuntu
- application.yml
- querydsl
- 테스트메소드
- AuthenticationEntryPoint
- 커밋메세지수정
- Query
- 참조키
- WeNews
- 테스트
- EC2
- appspec.yml
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 |