Search
โ˜•

N+1

โ€ข
์ž˜๋ชป๋œ ์ฟผ๋ฆฌ, OneToMany, ManyToOne, bulk insert/delete ๋“ฑ์˜ ์ƒํ™ฉ์—์„œ ๋ฐœ์ƒํ•œ๋‹ค.

Bulk delete

โ€ข
JPQL ๋˜๋Š” ๋ฐฐ์น˜ ์˜ต์…˜์œผ๋กœ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ

ManyToOne

โ€ข
fetch join

OneToMany

โ€ข
fetch join ์„ ๊ฑธ๋ฉด ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ๋ถˆํ•„์š”ํ•œ ์ค‘๋ณต ๋ฐ์ดํ„ฐ ์กฐํšŒ, inner ์กฐ์ธ
โ€ข
JPQL join ์“ฐ๋ฉด ๋ถˆํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ ์กฐํšŒ
โ€ข
batch fetch size ์˜ต์…˜ or JPQL in ์ ˆ ํ™œ์šฉ

๋ฐ˜์ •๊ทœํ™”

โ€ข
๋™์‹œ์„ฑ ๋ฌธ์ œ ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ

fetch type EAGER

โ€ข
JPQL(repository ์˜ ์ฟผ๋ฆฌ ๋ฉ”์„œ๋“œ(findAll, findByName), @Query) ์„ ์ด์šฉํ•˜๋ฉด N+1 ๋ฐœ์ƒ!
โ€ข
findById ๋Š” left outer join ์œผ๋กœ ๊ฐ€์ ธ์˜ด!