[FitFinder] Fetch Join과 Batch 조회를 통한 쿼리 최적화 여정기
·
Project
Project - FitFinder0. 들어가며 FitFinder 프로젝트는 공모전에 나가기 위해서 조금 타이트한 일정으로 기획 및 개발된 프로젝트입니다. 개발한 지는 꽤 시간이 지났지만, 좋은 추억을 만들어 준 애정이 있는 프로젝트였기 때문에 개선 사항이 있다면 개선해보고 싶었습니다. 현재는 유료로 전환된 공공데이터가 운이 좋게도 postgresql 컨테이너에 아직까지 잘 저장되어 있었습니다... 휴. 프론트도 Vercel에 아직 잘 살아 있어서 잘 작동해서 API 하나를 실행해 본 결과 쿼리가 "33개"가 나가는 것을 확인했습니다. "쿼리가 왜케 많이 나가지?"라는 생각과 함께 내부 코드를 살펴보던 중, 너무 급하게 개발했던 상황이 코드에 그대로 남겨진 것을 확인했습니다. 그.래.서. 이번 글에서는..
[SQL] RANK(), DENSE_RANK(), ROW_NUMBER() 함수에 대해서
·
Developer/DB
SQL0. 들어가며 최근 쏘마 코테를 보면서 윈도우 함수와 랭크 관련 함수를 정리해야겠다고 마음먹었습니다. 공부하면서 해당 내용들을 같이 보면 좋을 것 같아서 이렇게 글을 작성해 봅니다! 윈도우 함수와 랭크 함수는 현실에서도 종종 사용될 수 있다고 생각합니다. 예를 들어, 각 학급 당 석차가 1등인 학생을 찾아야 되는 경우 또는 각 학년 당 각 과목 석차 Top 3인 학생들을 찾아야 하는 경우 등 다양한 상황이 있을 것입니다. 이렇게 보면 윈도우 함수와 랭크 함수는 데이터 분석 관점에서 되게 유용한 정보를 뽑아낼 수 있는 함수들이라고 생각합니다. 흔히 순위라고 하면 Redis Sorted Set과 같은 자료구조를 생각할 수도 있겠지만, 관계형 데이터베이스에서는 이를 어떻게 구현할지 같이 익혀보면 좋을 ..