API 응답 속도 개선하기 (2) - 데이터베이스 인덱싱(indexing), explain
·
Spring
이전 글 [SQL] 연관 관계가 있는 더미 데이터 생성하기API 성능 테스트를 위한 더미 데이터를 생성하는 과정이다.처음에는 조회 대상인 suggestion만 10만개를 만들었는데,10만개의 suggestion에 동일한 FK(member_key, position_id)를 넣는 실수를 했다.그 결과 당gyujh.tistory.com API 응답 속도 개선하기 (1) - Paging과 Fetch Join, JPA N + 1 문제1.  문제 상황프로젝트 진행 중, 백오피스에서 사용하고 있는 정보수정요청(Suggestion) 조회 API를 개선하려고 한다.페이징 처리가 되어있긴하지만, 4개의 연관 관계가 있는 구조라 JPA N+1(실제로는gyujh.tistory.com 1. 문제 분석@Query("SELECT ..
API 응답 속도 개선하기 (1) - Paging과 Fetch Join, JPA N + 1 문제
·
Spring
1.  문제 상황프로젝트 진행 중, 백오피스에서 사용하고 있는 정보수정요청(Suggestion) 조회 API를 개선하려고 한다.페이징 처리가 되어있긴하지만, 4개의 연관 관계가 있는 구조라 JPA N+1(실제로는 3N+1..) 문제가 발생하고 있다.10만개의 데이터를 기준으로, 사용자가 가장 만족스럽게 느끼는 응답 시간인 200~300ms까지 개선해볼 예정이고,이번 글에서는 jpql의 성능 최적화 방법 중 하나인 Fetch Join을 사용할 것이다. [SQL] 연관 관계가 있는 더미 데이터 생성하기API 성능 테스트를 위한 더미 데이터를 생성하는 과정이다.처음에는 조회 대상인 suggestion만 10만개를 만들었는데,10만개의 suggestion에 동일한 FK(member_key, position_id..
[SQL] 연관 관계가 있는 더미 데이터 생성하기
·
Database
API 성능 테스트를 위한 더미 데이터를 생성하는 과정이다.처음에는 조회 대상인 suggestion만 10만개를 만들었는데,10만개의 suggestion에 동일한 FK(member_key, position_id)를 넣는 실수를 했다.그 결과 당연히 원하는 테스트 결과가 나오지 않았다.-> 중복된 member, position을 조회하며 fetch join 적용했을 때 더 느림실제 프로덕션 환경에서는 member, company, position, suggestion의 연결이 제각각일 것이기에member, company, position, suggestion을 모두 10만개씩 생성하며, 생성 과정에서 FK를 랜덤으로 선택하도록 SQL을 짰다.  생성 코드DELIMITER $$DROP PROCEDURE IF..