Transaction & Lock

MySQL์˜ ๋™์‹œ์„ฑ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ์ž ๊ธˆ(Lock)๊ณผ ํŠธ๋žœ์žญ์…˜, ํŠธ๋žœ์žญ์…˜์˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€(Isolation Level)์„ ํ•™์Šตํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•œ๋‹ค.

ํŠธ๋žœ์žญ์…˜๊ณผ ์ž ๊ธˆ

ํŠธ๋žœ์žญ์…˜์€ ์ž‘์—…์˜ ์™„์ „์„ฑ์„ ๋ณด์žฅํ•ด ์ค€๋‹ค. ์ฆ‰, ๋…ผ๋ฆฌ์ ์ธ ์ž‘์—…์„ ๋ชจ๋‘ ์™„๋ฒฝํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•˜๊ฑฐ๋‚˜ ์ฒ˜๋ฆฌํ•˜์ง€ ๋ชปํ•  ๊ฒฝ์šฐ์—๋Š” ์›๋ž˜ ์ƒํƒœ๋กœ ๋ณต๊ตฌํ•˜์—ฌ ์ž‘์—…์˜ ์ผ๋ถ€๋งŒ ์ ์šฉ๋˜๋Š” ํ˜„์ƒParitial upate)์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๊ฒŒ ๋งŒ๋“ค์–ด์ค€๋‹ค.

์ž ๊ธˆ(Lock)๊ณผ ํŠธ๋žœ์žญ์…˜์€ ์„œ๋กœ ๋น„์Šทํ•œ ๊ฐœ๋… ๊ฐ™์ง€๋งŒ ์ž ๊ธˆ์€ ๋™์‹œ์„ฑ์„ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋Šฅ์ด๊ณ  ํŠธ๋žœ์žญ์…˜์€ ๋ฐ์ดํ„ฐ์˜ ์ •ํ•ฉ์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋Šฅ์ด๋‹ค.

์ž ๊ธˆ์€ ์—ฌ๋Ÿฌ ์ปค๋„ฅ์…˜์—์„œ ๋™์‹œ์— ๋™์ผํ•œ ์ž์›(๋ ˆ์ฝ”๋“œ, ํ…Œ์ด๋ธ” ๋“ฑ)์„ ์š”์ฒญํ•  ๊ฒฝ์šฐ ์ˆœ์„œ๋Œ€๋กœ ํ•œ ์‹œ์ ์—๋Š” ํ•˜๋‚˜์˜ ์ปค๋„ฅ์…˜๋งŒ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

๊ฒฉ๋ฆฌ ์ˆ˜์ค€์€ ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜ ๋‚ด์—์„œ ๋˜๋Š” ์—ฌ๋Ÿฌ ํŠธ๋žœ์žญ์…˜ ๊ฐ„์˜ ์ž‘์—… ๋‚ด์šฉ์„ ์–ด๋–ป๊ฒŒ ๊ณต์œ ํ•˜๊ณ  ์ฐจ๋‹จํ•  ๊ฒƒ์ธ์ง€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๋ ˆ๋ฒจ์„ ์˜๋ฏธํ•œ๋‹ค.

Last updated