Search
Duplicate
โ˜•

batch_fetch_style

spring: jpa: properties: hibernate: batch_fetch_style: padded default_batch_fetch_size: 100
YAML
๋ณต์‚ฌ
default_batch_fetch_size ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ in (?) ์ ˆ์„ ํ™œ์šฉํ•  ๋•Œ์— prepared statement ์—์„œ๋Š” (?) ์˜ ๊ฐœ์ˆ˜๋ฅผ ๋ฏธ๋ฆฌ ์ •ํ•ด๋†“๋Š”๋‹ค. ์ด์œ ๋Š” ๋ช‡ ๊ฐœ์˜ ? ๋ฅผ ํ•ด์•ผํ•  ์ง€ ๋ชจ๋ฅด๋Š” ์ƒํ™ฉ์—์„œ(๋™์ ์ด๋‹ˆ๊นŒ) ๊ฐฏ์ˆ˜๋งŒํผ ๋™์ ์œผ๋กœ ๊ณ„์† ๋งŒ๋“ค๋‹ค๋ณด๋ฉด ์„ฑ๋Šฅ์ƒ ๋ถˆ๋ฆฌํ•˜๊ธฐ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋ž˜์„œ default_batch_fetch_size ์˜ ๊ฐœ์ˆ˜๊ฐ€ 100 ์ด๋ผ๋ฉด, ? ๊ฐœ์ˆ˜๊ฐ€ 1~10, 100, 50, 25, 12 ์ด๋ ‡๊ฒŒ 14๊ฐœ๋ฅผ ๋ฏธ๋ฆฌ ์„ธํŒ…ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋งŒ์•ฝ in ์ ˆ๋กœ ๊ฐ€์ ธ์™€์•ผ ํ•  ๋ฐ์ดํ„ฐ๊ฐ€ 30๊ฐœ๋ผ๋ฉด (?*25) ์ธ๊ฑฐ ํ•˜๋‚˜, (?*5) ์ธ๊ฑฐ ํ•˜๋‚˜ ์ด 2๊ฐœ์˜ ์ฟผ๋ฆฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด๋†“๋Š” in (?) ์ ˆ์˜ ๊ฐœ์ˆ˜๋Š” log2N - 2~3๊ฐœ + 10๊ฐœ์ด๋‹ค. 10 ์ด์ƒ๊นŒ์ง€ ๋‚˜๋ˆ„๊ธฐ 2๋ฅผ ๊ณ„์† ํ•ด์„œ ๊ทธ๋ ‡๋‹ค.
batch_fetch_style ์—๋Š” legacy, padded, dynamic ์ด ์žˆ๋Š”๋ฐ, ์œ„์—์„œ ์„ค๋ช…ํ•œ ๋ฐฉ์‹์ด legacy ์ด๊ณ  dynamic ์€ ์„ฑ๋Šฅ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•œ ์บ์‹ฑ์„ ํ•˜์ง€ ์•Š๊ณ  ๊ทธ๋ƒฅ ๋™์ ์œผ๋กœ ๋‹ค ๋งŒ๋“ค์–ด๋ฒ„๋ฆฌ๋Š” ๋ฐฉ์‹์ด๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์„ค์ •ํ•œ padded ๋Š” legacy ์™€ ๋น„์Šทํ•˜๋‹ค. ์„ฑ๋Šฅ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•œ ์ฟผ๋ฆฌ ์บ์‹ฑํ•˜๋Š” ๊ฒƒ์€ ๊ฐ™์œผ๋‚˜ legacy ๋Š” ๋ฐ์ดํ„ฐ๋ณด๋‹ค ์ ์€ ์ˆ˜, padded ๋Š” ๋ฐ์ดํ„ฐ๋ณด๋‹ค ๋งŽ์€ ์ˆ˜๋กœ ์ฟผ๋ฆฌ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์œ„์˜ ์˜ˆ์‹œ์—์„œ ๋ฐ์ดํ„ฐ๊ฐ€ 30๊ฐœ๋ผ๋ฉด (?*50) ์ธ๊ฑฐ๋ฅผ ๊ฐ€์ ธ์™€์„œ ์‚ฌ์šฉํ•œ๋‹ค.
๊ทธ๋ ‡๋‹ค๋ฉด ๋‚จ๋Š” ? 20๊ฐœ์—๋Š” ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์„๊นŒ?
in ์ ˆ๋กœ ๊ฐ€์ ธ์˜ฌ ๋ฐ์ดํ„ฐ์˜ ๋ฐ”์ธ๋”ฉ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” 31~60 ๊นŒ์ง€์˜€๋‹ค. ๊ทธ๋ž˜์„œ ๋‚˜๋จธ์ง€ 20๊ฐœ์—๋Š” ์ฒซ ๋ฐ์ดํ„ฐ๋ฅผ ๋”๋ฏธ๋กœ ๋„ฃ๋Š”๋‹ค. ๊ฐ€์ ธ์˜จ 20๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋Š” ์•„๋งˆ jpa ์˜ ๋™์ผ์„ฑ ๋ณด์žฅ์— ์˜ํ•ด ๊ฐ™์€ ๊ฐ์ฒด์—ฌ์„œ ์‚ฌ๋ผ์ง€๋Š”๋“ฏํ•˜๋‹ค.
in ์ ˆ์— ๋“ค์–ด๊ฐˆ ๋ฐ์ดํ„ฐ์˜ ๊ฐœ์ˆ˜๊ฐ€ ์„œ๋น„์Šค ํŠน์„ฑ์ƒ ์ž์ฃผ ๋ณ€ํ•˜๊ธฐ๋•Œ๋ฌธ์— dynamic ๋ณด๋‹ค๋Š” padded ๋ฅผ ์ด์šฉํ•˜๊ธฐ๋กœ ํ•˜์˜€๋‹ค.

์ฐธ๊ณ