본문 바로가기
반응형

실행 계획2

[PostgreSQL] Nested Loop Join을 HashJoin으로 개선하기 RDBMS를 사용하다보면 Nested Loop Join 으로 인해 성능 저하를 겪는 경우가 많다.일부 RDBMS는 특정 버전에 따라 Nested Loop Join만 지원되는 경우도 있다.다만, 요즘의 RDBMS는 대부분 Hash Join등 여러 Join 형태를 지원하고 있고 이를 통해 성능 개선이 가능하다.MySQL도 8.0.18 부터 Hash Join을 지원한다.실제 사례로 성능 개선을 진행해보자.1. 문제 쿼리아래와 같이 여러 Join을 진행하는 실제 쿼리가 있다.SELECT i.id, i.titles[?] AS title, i.icon_url FROM institutions i INNER JOIN interested_corporations ic ON i.id = ic.institution_i.. 2024. 5. 29.
2. 커버링 인덱스 (WHERE + ORDER BY / GROUP BY + ORDER BY ) 지난 시간에 이어 이번엔 ORDER BY에 대해 알아보겠습니다. 2-1. WHERE + ORDER BY 일반적으로 ORDER BY 의 인덱스 사용 방식은 GROUP BY와 유사합니다만, 한가지 차이점이 있습니다. 바로 정렬 기준입니다. MySQL에서는 인덱스 생성시 컬럼 마다 asc/desc 를 정할수 있는것 처럼 보입니다. (젯브레인사의 DataGrip으로 인덱스 생성시 가능한 것처럼 보입니다만… 안됩니다.) 하지만 8.0 이전 버전까지는 지원하지 않습니다. 8.0 이전 버전까지는 문법만 지원되고 실제로 Desc 인덱스가 지원되는 것은 아닙니다. 단지 Ascending index 으로 만들어진 인덱스를 앞에서부터 읽을 것인지 (Forward index scan), 뒤에서부터 읽을 것인지 (Backwar.. 2020. 2. 29.

728x90
반응형