Db-connection-pool.md

SQLAlchemy์™€ ๊ฐ™์€ ORM์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€ํ•˜๋˜ ์ค‘ 'Pool ๊ด€๋ฆฌ'๋ผ๋Š” ๋‹จ์–ด๊ฐ€ ๋‚˜์™€ ์ฐพ์•„๋ณธ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.

ORM Session์ด DB์— ์—ฐ๊ฒฐํ•œ ํ›„ ์ž‘์—…์ด ๋๋‚˜๋ฉด ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋งŒ๋“ค์–ด ๋†“์€ connection pool์„ ์‚ฌ์šฉํ•˜๊ณ  ๋‹ค์‹œ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฐฉ์‹....?

DB์— ์ฒ˜์Œ ์ ‘์†ํ•˜๋Š” ๊ณผ์ •(getConnection())์—์„œ ๋ถ€ํ•˜๊ฐ€ ๊ฑธ๋ฆฌ๊ฒŒ ๋˜๋Š”๋ฐ ์ด๋ฅผ ๋ง‰๊ธฐ ์œ„ํ•ด์„œ ์—ฌ๋Ÿฌ๊ฐœ์˜ ์—ฐ๊ฒฐ์„ ํ•ด๋†“์€ ํ›„ ํ•˜๋‚˜์”ฉ ์‚ฌ์šฉํ•˜๋ฉด ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

ํ•˜์ง€๋งŒ Pool์„ ๋„ˆ๋ฌด ๋งŽ์ด ํ•ด๋†“์œผ๋ฉด ๋ฉ”๋ชจ๋ฆฌ์˜ ์†Œ๋ชจ๊ฐ€ ํฌ๊ณ  ๋„ˆ๋ฌด ์ ๊ฒŒ ํ•ด๋†“์œผ๋ฉด Pool์„ ๋งŒ๋“  ๊ทผ๋ณธ์ ์ธ ์ด์œ ๊ฐ€ ์‚ฌ๋ผ์งˆ ๋ฟ๋”๋Ÿฌ ๋Œ€๊ธฐ ์‹œ๊ฐ„์ด ๊ธธ์–ด์ง„๋‹ค. ๋”ฐ๋ผ์„œ ์ ๋‹นํ•œ ํฌ๊ธฐ๋กœ Connection Pool์„ ๊ด€๋ฆฌํ•ด์•ผํ•œ๋‹ค.

Python์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋Š” SQLAlchemy์—์„œ๋Š” QueuePool์„ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

๊ธฐ๋ณธ ์ธ์ž๋Š” pool_size ์™€ max_overflow ์ด๊ณ  ์ด๊ฒƒ์„ ๊ธฐ๋ฐ˜์œผ๋กœ connection pool ๊ฐœ์ˆ˜๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค.

๋” ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์•„๋ž˜์˜ ํฌ์ŠคํŠธ๋ฅผ ํ™•์ธํ•ด๋ณด์ž

SQLAlchemy์˜ ์—ฐ๊ฒฐ ํ’€๋ง ์ดํ•ดํ•˜๊ธฐ

Last updated