Rookiss Part5 데이터베이스 : Sorting
🙇♀️Sorting
Sorting (정렬) 을 줄이자!
O(NLogN) -> DB는 데이터가 어마어마하게 많다 너무 용량이 커서 가용 메모리로 커버가 안 되면 -> 디스크까지 찾아간다 (!) Sorting이 언제 일어나는지 파악하고 있어야 함
🪐Sorting이 일어날 떄
- SORT MERGER JOIN
- 원인) 알고리즘 특성상 Merge하기 전엔 Sort를 해야 함
- ORDER BY
- 원인) ORDER BY 순서로 정렬 해야 하니까 Sort
- 인덱스가 있다면 안함
- GROUP BY
- 원인) 집게를 하기 위해
- 인덱스가 있다면 안함
- DISTINCT
- 원인) 중복 제거
- 정말로 필요한 것인가 생각해야 됨 (로직적 문제)
- UNION
- 원인) 중복제거
- UNION ALL로 한다면 안함
- RANKING WINDOWS FUNCTION
- 원인) 집게를 하기 위해
- MIN MAX
- 원인) 집게를 하기 위해
INDEX를 잘 활용하면, Sorting을 굳이 하지 않아도 됨
🪐결론
- SORT MERGER JOIN
- ORDER BY
- GROUP BY
- DISTINCT
- UNION
- RANKING WINDOWS FUNCTION
- MIN MAX