[JAVA]JPA N+1 문제란?(해결방안)
N+1 쿼리 문제의 원인? Spring Data JPA 에서 제공하는 Repository의 findAll(), findById()등과 같은 메소드를 사용하면 바로 DB에 SQL 쿼리를 날리는 것이 아닙니다. JPQL 이라는 객체지향 쿼리 언어를 생성, 실행시킨 후 JPA는 이것을 분석해서 SQL을 생성, 실행하는 동작에서 N+1 쿼리 문제가 발생한다. JPQL 입장에서는 LAZY로딩, EAGER 로딩과 같은 글로벌 패치 전략을 신경쓰지 않고 JPQL만 사용해서 SQL을 생성한다. N+1 쿼리 문제는 언제 발생할까? 발생하는 경우는 다음과 같은 2가지 경우가 있다. 두개의 Entity가 1:N 관계를 가지며 JPQL로 객체를 조회할때 EAGER 전략으로 데이터를 가지고 오는 경우 LAZY 전략으로 데이터를..
JPA
2023. 3. 29. 23:36
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- jpa
- 논블로킹
- R-Tree
- 비동기
- java
- 네트워크
- spring mvc
- db
- 쓰레드
- 인덱스
- thread
- spring boot
- spring
- lock
- mysql
- 데이터베이스
- 영속성 컨텍스트
- TCP
- Spring Security
- 스프링
- GIS
- jenkins
- DispatcherServlet
- oauth2
- 다운로드
- Excel
- Index
- 공간쿼리
- database
- github
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함