Database

[Database] ํŠธ๋žœ์žญ์…˜์˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€(Isolation Level)

quedevel 2023. 3. 26. 15:16
728x90
๋ฐ˜์‘ํ˜•

๐ŸŽฏ ํŠธ๋žœ์žญ์…˜์˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€(Isolation Level)


ํŠธ๋žœ์žญ์…˜์˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€(Isolation Level)์€ ๋™์‹œ์— ์—ฌ๋Ÿฌ ํŠธ๋žœ์žญ์…˜์ด ์‹คํ–‰๋  ๋•Œ, ๊ฐ๊ฐ์˜ ํŠธ๋žœ์žญ์…˜์ด ์„œ๋กœ ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๊ณ  ๋…๋ฆฝ์ ์œผ๋กœ ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š”๋ฐ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์€ ๋™์‹œ์— ์‹คํ–‰๋˜๋Š” ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜๋“ค๊ณผ์˜ ์ƒํ˜ธ์ž‘์šฉ ๋ฐฉ์‹์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.


ํŠธ๋žœ์žญ์…˜์˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€ 4๊ฐ€์ง€


  1. READ UNCOMMITTED
    • ํŠธ๋žœ์žญ์…˜์ด ์ปค๋ฐ‹๋˜์ง€ ์•Š์€ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์—์„œ ๋ณ€๊ฒฝ๋œ ๋ฐ์ดํ„ฐ๋„ ์ฝ์–ด๋“ค์ผ ์ˆ˜ ์žˆ๋Š” ์ตœํ•˜์˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์ž…๋‹ˆ๋‹ค.
      Dirty Read, Non-repeatable Read, Phantom Read ๋ฌธ์ œ์ ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. READ COMMITTED
    • ํŠธ๋žœ์žญ์…˜์ด ์ปค๋ฐ‹๋œ ๋ฐ์ดํ„ฐ๋งŒ ์ฝ์–ด๋“ค์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
      Dirty Read ๋ฌธ์ œ๋Š” ๋ฐœ์ƒํ•˜์ง€ ์•Š์ง€๋งŒ, Non-repeatable Read, Phantom Read ๋ฌธ์ œ์ ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  3. REPEATABLE READ
    • ํŠธ๋žœ์žญ์…˜ ๋™์•ˆ ๊ฐ™์€ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ํ•ญ์ƒ ๋™์ผํ•œ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค๋„๋ก ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.
      Non-repeatable Read ๋ฌธ์ œ๋Š” ๋ฐœ์ƒํ•˜์ง€ ์•Š์ง€๋งŒ, Phantom Read ๋ฌธ์ œ์ ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  4. SERIALIZABLE
    • ๊ฐ€์žฅ ๋†’์€ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์œผ๋กœ, ํŠธ๋žœ์žญ์…˜ ๊ฐ„์— ์™„์ „ํ•œ ๊ฒฉ๋ฆฌ๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.
      ๋ชจ๋“  ๋ฌธ์ œ์ ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๋™์‹œ์„ฑ ์ฒ˜๋ฆฌ์— ๋Œ€ํ•œ ์„ฑ๋Šฅ ์ €ํ•˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
      ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์€ ์ƒํ™ฉ์— ๋”ฐ๋ผ ์ ์ ˆํ•œ ์ˆ˜์ค€์œผ๋กœ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ณดํ†ต์€ REPEATABLE READ๋ฅผ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉฐ, ํŠน์ • ์ƒํ™ฉ์—์„œ๋Š” READ COMMITTED๋‚˜ SERIALIZABLE ์ˆ˜์ค€์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ด ์ข‹์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.


ํŠธ๋žœ์žญ์…˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์˜ ํ•„์š”์„ฑ


๋งŒ์•ฝ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์ด ์„ค์ •๋˜์ง€ ์•Š๊ฑฐ๋‚˜ ๋‚ฎ์€ ์ˆ˜์ค€์˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์ด ์„ค์ •๋œ๋‹ค๋ฉด, ๋™์‹œ์— ์‹คํ–‰๋˜๋Š” ์—ฌ๋Ÿฌ ํŠธ๋žœ์žญ์…˜ ๊ฐ„์— ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ๋‘ ๊ฐœ์˜ ํŠธ๋žœ์žญ์…˜์ด ๋™์‹œ์— ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  ์ปค๋ฐ‹ํ•˜๋Š” ๊ฒฝ์šฐ, ์–ด๋Š ํŠธ๋žœ์žญ์…˜์ด ๋จผ์ € ์ปค๋ฐ‹๋˜์—ˆ๋Š”์ง€์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์—์„œ ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์„ ๋•Œ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์€ ๋™์‹œ์— ์‹คํ–‰๋˜๋Š” ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜๋“ค๊ณผ์˜ ์ƒํ˜ธ์ž‘์šฉ ๋ฐฉ์‹์„ ๊ฒฐ์ •ํ•˜๋Š”๋ฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ๋†’์€ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์€ ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ๊ณผ ์•ˆ์ •์„ฑ์„ ๋ณด์žฅํ•˜์ง€๋งŒ, ๋™์‹œ์„ฑ ์ฒ˜๋ฆฌ์— ๋Œ€ํ•œ ์„ฑ๋Šฅ ์ €ํ•˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ฐ˜๋ฉด์— ๋‚ฎ์€ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์€ ๋™์‹œ์„ฑ ์ฒ˜๋ฆฌ์— ๋Œ€ํ•œ ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ๊ฐ€์ ธ์˜ค์ง€๋งŒ, ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๋‚ฎ์€ ๋‹จ๊ณ„์˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์„ ์‚ฌ์šฉ์‹œ ๋ฐœ์ƒํ•˜๋Š” ํ˜„์ƒ


  1. Dirty Read (๋”ํ‹ฐ ๋ฆฌ๋“œ)
    • ํ•œ ํŠธ๋žœ์žญ์…˜์ด ์ปค๋ฐ‹๋˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์—์„œ ์ฝ๋Š” ํ˜„์ƒ์ž…๋‹ˆ๋‹ค.
    • ์˜ˆ๋ฅผ ๋“ค์–ด, ํŠธ๋žœ์žญ์…˜ A๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  ์•„์ง ์ปค๋ฐ‹ํ•˜์ง€ ์•Š์€ ์ƒํ™ฉ์—์„œ, ํŠธ๋žœ์žญ์…˜ B๊ฐ€ ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๋Š” ๊ฒฝ์šฐ, A๊ฐ€ ๋กค๋ฐฑํ•  ๊ฒฝ์šฐ B๊ฐ€ ์ฝ์€ ๋ฐ์ดํ„ฐ๋Š” ์œ ํšจํ•˜์ง€ ์•Š๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
  2. Non-Repeatable Read (๋น„๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ์ฝ๊ธฐ)
    • ํ•œ ํŠธ๋žœ์žญ์…˜์ด ๊ฐ™์€ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ค๋ฅธ ํ˜„์ƒ์ž…๋‹ˆ๋‹ค.
    • ์˜ˆ๋ฅผ ๋“ค์–ด, ํŠธ๋žœ์žญ์…˜ A๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ์žˆ๋Š” ์ค‘์—, ํŠธ๋žœ์žญ์…˜ B๊ฐ€ ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  ์ปค๋ฐ‹ํ•˜๋Š” ๊ฒฝ์šฐ, A๊ฐ€ ๋‹ค์‹œ ๊ฐ™์€ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๊ฒฐ๊ณผ๊ฐ€ ๋‹ค๋ฅด๊ฒŒ ๋‚˜ํƒ€๋‚  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  3. Phantom Read (์œ ๋ น ์ฝ๊ธฐ)
    • ํ•œ ํŠธ๋žœ์žญ์…˜์ด ๊ฐ™์€ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ฌ๋ผ์ง€๋Š” ํ˜„์ƒ์ž…๋‹ˆ๋‹ค.
    • ์˜ˆ๋ฅผ ๋“ค์–ด, ํŠธ๋žœ์žญ์…˜ A๊ฐ€ ๋ฒ”์œ„ ๊ฒ€์ƒ‰ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์žˆ๋Š” ์ค‘์—, ํŠธ๋žœ์žญ์…˜ B๊ฐ€ ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…ํ•˜๊ณ  ์ปค๋ฐ‹ํ•˜๋Š” ๊ฒฝ์šฐ, A๊ฐ€ ๋‹ค์‹œ ๊ฐ™์€ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๊ฒฐ๊ณผ๊ฐ€ ๋‹ค๋ฅด๊ฒŒ ๋‚˜ํƒ€๋‚  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
728x90
๋ฐ˜์‘ํ˜•