join2 [DB] 조인 종류 살펴보기 (중첩 루프 조인 & 정렬 병합 조인 & 해시 조인) 들어가며실행 계획에 담긴 정보 중에 하나는 조인에 사용된 방식이 있습니다. 이를 통해 이전에 작성하였던 글인 '쿼리 속도 개선하기'에서 조인이 효율적으로 잘 동작하는지 확인할 수 있었습니다. 하지만, 내부적으로 어떤 방식으로 동작하는지에 대해서는 이해가 부족한 것 같아 글을 작성하게 되었습니다.중첩 루프 조인 (Nested Loop Join)for 문과 같은 원리로 조건에 맞는 조인을 하는 방법입니다.그림과 같이 조인의 기준이 되는 테이블(Driving Table)의 각 행이 조인 대상이 되는 테이블(Drived Table)의 각각의 행에 대해서 모두 비교를 시도합니다. 따라서 시간 복잡도는 Drived Table 의 행의 개수 ** Driving Table 의 행의 개수 가 됩니다.따라서, DBMS가 .. 2025. 4. 28. [팀 프로젝트 & DB] 쿼리 속도 개선하기. 들어가며특정 게시글 목록을 보여줄 때, 총 3개의 테이블이 조인이 되는 쿼리가 존재하였습니다. 페이지네이션 작업을 진행하면서, 혹시 데이터가 늘어나거나 조회 조건이 추가되면 성능 저하가 있지 않을까? 하는 생각에 더미 데이터를 통한 성능 측정과 이 과정에서 쿼리를 수정하거나 인덱스를 튜닝하여 속도를 개선하는 과정을 기록하고자 글을 작성하게 되었습니다.더미데이터더미데이터를 추가할 때, 이전에 글을 작성한 것과 같이 데이터의 다양성이 떨어지면 의도한 인덱스를 타지 않고 풀스캔을 해버리는 경우. 즉, 인덱스의 효용이 떨어져 DBMS가 풀스캔을 선택하게 되는 상황을 배제하고자 데이터의 분포를 고르게 하고자 하였습니다.INSERT INTO jobs(id, name, created_at) -- 직업 더미 데이터WI.. 2025. 4. 16. 이전 1 다음