distinct 와 group by 이 두가지 키워드는 흔하게 사용하는 sql 구문이다.
그럼 이 두가지는 무엇을 하느냐 .. 바로그룹핑
sql 에서 그룹핑 기능을 한다.
그럼 이 두개의 기능은 동일한 결과물을 도출을 한다.
SELECT DISTINCT gender
From app_user;
SELECT gender
from app_user
GROUP BY gender;
이 두가지의 차이점은 일단 더 간결한 group by 구문이 더 간결하다?
한가지 이유로는DISTINCT
구문에 비하여GROUP BY
더 직관적이고 간결하다.
성능적인 이유도 그렇다 내가 만든 예시의 경우 1000 개 이상의 스몰데이터 이기 때문에
비슷한 성능이 나왔다.
하지만 100000 이상의 대용량 데이터를 읽는 다면 이야기는 다르다...
group by 구문이 앞 승을 한다...
일단 플로우를 보면 알 수 있다.
distinct 의 경우 한 번 indexing 한것을 읽고 sort 까지 한다.
하지만 groupby 의 경우 indexing 만 한다.
플로우 만 봐도 차이가 있다.