ย ๋ชฉํ
์ด๋ฒ ์ฃผ ๋ชฉ์์ผ๊น์ง์ ๋ชฉํ์, ๋ค์ ์ฃผ ์์์ผ๊น์ง์ ๋ชฉํ๋ฅผ ์ ์ด์ฃผ์ธ์.
Table
Search
Table
Search
์๊ฒฌ
์คํฌ๋ผ ํ๋ฉด์ ๋์ค๋ ์ฌ๋ฌ ์๊ฒฌ๋ค์ ์ฌ๊ธฐ์ ์์ ๋กญ๊ฒ ์ ์ด๋ณด์ธ์.
์ฝ๋ ์ต์ ํ(๋ถ์กฑํ๋ถ๋ถ, ์ปจ๋ฒค์
๋ง์ถ๊ธฐ)
N+1 ๋ฐ์ ํด๊ฒฐ
โข
ํ ํ๋ ๋น์ฉ ๋ฐ์์ต๋๋ค. ์ธํ 273,600์์
๋๋ค.
โข
User๋ฅผ ์ญ์ ํ๋ ๊ณผ์ ์์ N+1 ๋ฌธ์ ๊ฐ ๋ฐ์.
โข
โ ํ์์ด ์ญ์ ๋ ๊ฒฝ์ฐ ํ์๊ณผ ์ฐ๊ด๋ BookRent, BookReservation ๋ฑ์ด ์ญ์ ๋์ด์ผ ํด์ ํ์์ผ๋ก๋ถํฐ ์ฐ๊ด๋ ์ ํ
์ด๋ธ์ ์กฐํํ ๋ N+1 ๋ฌธ์ ๊ฐ ์๊น
โฆ
์์๋๋ ์ฟผ๋ฆฌ๋ฌธ์?
โช
โข
N+1๋ฌธ์ ํด๊ฒฐ์ ์ํด์๋ ๋ฐฐ์น์ฌ์ด์ฆ ์ง์ ๋๋ Fetch Join์ ์ฌ์ฉํ๊ฒ ๋๋๋ฐ,
์ ํ)
โข
Fetch join โ onetomany ์ฐ๊ด๊ด๊ณ์ ๊ฒฝ์ฐ 2๊ฐ ์ด์ ํฌํจํ ๊ฒฝ์ฐ ์ค๋ฅ ๋ฐ์ํจ
ex) BookRent BookReservation BookDonationApply๋ฑ onetomany ๊ด๊ณ๊ฐ 2๊ฐ ์ด์์ผ๋ก ์ ์ฉ์ด ํ๋ฌ
โข
batchsize๋ก ํด๊ฒฐ์๋ ์ โ ์ต์
์ด ์ ์์ ์ผ๋ก ์๋ํ์ง์๋๋ค.
ex) 10์ผ๋ก ์ก์ผ๋ฉด mysql์ ์ฝ์๊ณผ ์ค์ ์ ์ก์ฟผ๋ฆฌ๊ฐ ๋ค๋ฅผ ์ ์๋ค?
https://techblog.woowahan.com/2695/
์ค์ ์ ์๋ชปํ์๊ฐ๋ฅ์ฑ๋?
Dto๋ก ์ง์ ์กฐํํ๋๋ฐฉ๋ฒ?๋ ์๋ค๋๋ฐ
์๊ฐ
์๊ฐ์ ์์ ๋กญ๊ฒ ์ ์ด๋ณด์ธ์.
โข
์๊ฐ์ด ๋๋ค๋ฉด ์ธํ๋ผ์ Docker ํ์ฉํ๋๊ฒ ์๊ฐํด๋ณด์.
โข
๋น ๋ฅด๊ฒ ์ฑ๋ฅ๊ฐ์ ์ชฝ์ ์ง์
ํด์ผ ๋ ๊ฒ ๊ฐ๋ค.
โข
N+1 ๋ฌธ์ ํด๊ฒฐ์ ๊ฐ๊ธฐ๋ฅ๋ง๋ค ํด๊ฒฐํด๋ณด๊ณ ์ํฉ๊ณต์ ํ๊ธฐ
โข
์ดํ์, ํ์ ์คํฐ๋๊ฐ ํ์ํ ๋ฏ?
โข
CS ๋ฉด์ ์ค๋น๋ ๊พธ์คํ ์๋ฑ๋กํ๊ธฐ!