mash-up-kr / ACM-Backend

11기 앺최몇 프로젝트 서버
25 stars 1 forks source link

feat: entity graph 추가 (N+1 쿼리 제거) #157

Closed junhaesung closed 2 years ago

junhaesung commented 2 years ago

resolve #154

BEFORE

# 향수 목록 조회 쿼리 1개
select
    perfume0_.id as id1_9_,
    perfume0_.created_at as created_2_9_,
    perfume0_.updated_at as updated_3_9_,
    perfume0_.brand_id as brand_i11_9_,
    perfume0_.description as descript4_9_,
    perfume0_.gender as gender5_9_,
    perfume0_.image_url as image_ur6_9_,
    perfume0_.name as name7_9_,
    perfume0_.original_name as original8_9_,
    perfume0_.thumbnail_image_url as thumbnai9_9_,
    perfume0_.url as url10_9_ 
from
    perfume perfume0_ limit ?

# 브랜드 조회 쿼리 (N개, 향수 개수만큼)
select
    brand0_.id as id1_1_0_,
    brand0_.created_at as created_2_1_0_,
    brand0_.updated_at as updated_3_1_0_,
    brand0_.country_name as country_4_1_0_,
    brand0_.description as descript5_1_0_,
    brand0_.logo_image_url as logo_ima6_1_0_,
    brand0_.name as name7_1_0_,
    brand0_.original_name as original8_1_0_,
    brand0_.parent_company_url as parent_c9_1_0_,
    brand0_.url as url10_1_0_,
    brand0_.website_url as website11_1_0_ 
from
    brand brand0_ 
where
    brand0_.id=?

AFTER

select
    perfume0_.id as id1_9_0_,
    brand1_.id as id1_1_1_,
    perfume0_.created_at as created_2_9_0_,
    perfume0_.updated_at as updated_3_9_0_,
    perfume0_.brand_id as brand_i11_9_0_,
    perfume0_.description as descript4_9_0_,
    perfume0_.gender as gender5_9_0_,
    perfume0_.image_url as image_ur6_9_0_,
    perfume0_.name as name7_9_0_,
    perfume0_.original_name as original8_9_0_,
    perfume0_.thumbnail_image_url as thumbnai9_9_0_,
    perfume0_.url as url10_9_0_,
    brand1_.created_at as created_2_1_1_,
    brand1_.updated_at as updated_3_1_1_,
    brand1_.country_name as country_4_1_1_,
    brand1_.description as descript5_1_1_,
    brand1_.logo_image_url as logo_ima6_1_1_,
    brand1_.name as name7_1_1_,
    brand1_.original_name as original8_1_1_,
    brand1_.parent_company_url as parent_c9_1_1_,
    brand1_.url as url10_1_1_,
    brand1_.website_url as website11_1_1_ 
from
    perfume perfume0_ 
left outer join
    brand brand1_ 
        on perfume0_.brand_id=brand1_.id limit ?