본문 바로가기

DATABASE2

페이징 쿼리 개선-커버링 인덱스 인턴 간 맡은 도메인의 페이징 쿼리를 개선해 본 내용입니다. 1. 상황 아래는 도메인 이해를 위해 간략히 배송 도메인의 ER 다이어그램을 나타낸 것이다. 주문 상품을 단위로 배송이 등록 여러 주문 상품이 하나의 배송에 매핑 가능(묶음 배송) 그럼 배송 조회 페이징에 사용되는 쿼리를 살펴보자. SELECT dp.id, d.created_at, d.last_transport_status, d.delivery_company, d.invoice_no, op.order_product_status, op.product_id, op.name, op.order_product_bundle_id, op.delivery_type, ore.name, ore.street_address, ore.detail_street_addr.. 2024. 1. 17.
복합 컬럼 인덱스를 이용한 쿼리 성능 개선하기 사이드프로젝트 간 인덱스를 이용한 쿼리 조회 성능 사례를 정리하고자 한다. 상황 위는 현재 ERD 상태 이고, 사용자(user)와 봉사 모집글(recruitment)에 이미지를 업로드 할 수 있고 추가로 로그 테이블도 존재하기 때문에 이미지 테이블을 분리시켜 놓았다. 봉사 모집글의 상세 정보를 조회하는 상황에서 참여자 리스트의 정보(닉네임, 이미지 등)가 필요하였다. JPA를 사용하는 상황에서 봉사 모집글의 참여자 정보는 Fetch Join, EntityGrapth 등의 기술로 가져올 수 있었지만, 참여자의 이미지는 함께 가져오지 못해 별도의 쿼리를 사용했다. 아래는 문제의 비지니스 로직의 부분이다. 참여자들의 수(N)만큼 이미지 쿼리가 발생했고, 초기에는 대수롭지 않게 넘겼다. 테스트 케이스 실행 중 .. 2023. 5. 19.