ํธ๋์ญ์
์ด๋ ?
์ํํธ์จ์ด ์ธ๊ณ์์์ ํธ๋์ญ์
์ ์ดํด๋ณด๊ธฐ ์์์ ์ค์ํ์์ ํํ ์๋ ์ด์ผ๊ธฐ๋ฅผ ์๋ก ๋ค์ด๋ณด๋ ค๊ณ ํ๋ค.
๋ง์ฝ ์น๊ตฌ๊ฐ ๋น์ ์๊ฒ ์์ ์ ๊ณ์ข์ 20๋ง์์ ๋ณด๋ด์ฃผ๋ ค๊ณ ํ๋ค.
์ด ๊ฒฝ์ฐ ์์
์ ๋จ์๋ ์ด๋ป๊ฒ ๋ ๊น?
์์ธํ ํํด์น๋ฉด ๋ ๋ง์ ๋จ์๊ฐ ์์ ์ ์๊ฒ ์ง๋ง ํฌ๊ฒ ๋ ๊ฐ์ง๋ก ๋ณผ ์ ์์ ๊ฒ์ด๋ค.
1. ์น๊ตฌ A์ ๊ณ์ข์์ 20๋ง์์ ๋บ๋ค.
2. ์น๊ตฌ B์ ๊ณ์ข์ 20๋ง์์ ์ถ๊ฐํ๋ค.
์ด ์ํฉ์์ ๋ฐ์ํ ์ ์๋ ๋ฌธ์ ๋ค์ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์๋๋ฐ ๋ํ์ ์ผ๋ก 4๊ฐ์ง๋ง ์์๋ณด์
๋ง์ฝ, ์ก๊ธ ๋์ค A์ ๊ณ์ข์๋ ๋์ด ๋น ์ก๋๋ฐ B์ ๊ณ์ข์ ๋์ด ๊ทธ๋๋ก๋ผ๋ฉด?
๋ง์ฝ, A์ ๊ณ์ข์ ๋์ด ๋ถ์กฑํ ์ํ์ธ๋ฐ ์ก๊ธ์ด ๋์๋ค๋ฉด?
๋ง์ฝ, ์ก๊ธ ๋์ค ์น๊ตฌC๊ฐ ์ก๊ธ์ ๋ณด๋ด์ ์๋ก์ ๋ฐ์ดํฐ๊ฐ ์๊ฐ๋ฆฐ๋ค๋ฉด?
๋ง์ฝ, ์ก๊ธ์ ์ ๋ง์ณค์์๋ ๋ฐ์ดํฐ๊ฐ ๋ ์๊ฐ ๋ฒ๋ฆฐ๋ค๋ฉด..?
๊ทธ๋ ๋ค๋ฉด ์น๊ตฌ๊ฐ ๋ณด๋ด์ค๋ค๊ณ ํ๋ 20๋ง์์ ์ฆ๋ฐํด๋ฒ๋ฆฐ ๊ฒ์ด๊ณ ์ด๋ ๊ณง ๋ํ ์ฌ๊ณ ๋ก ์ด์ด์ง๋ค.
์ด๋ฐ ํ์์ ๋ฐฉ์งํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๊ฒ์ด ํธ๋์ญ์
์ด๋ค.
ํธ๋์ญ์
์ ์์์ ๋งํ ์์
๋จ์๋ค์ ๋ฌถ์์ผ๋ก ์ธํด ์ผ๋ถ๋ง ์ฑ๊ณตํด์ DB์ ๋ฐ์๋๋ ์ผ์ด ์๋๋ก ๋์์ค๋ค.
์ฆ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํ๋ฅผ ๋ณํ์ํค๊ธฐ ํด์ ์ํํ๋ ๋
ผ๋ฆฌ์ ์ธ ์์
์ ๋จ์์ด๋ค.
๊ทธ๋ฆฌ๊ณ ํธ๋์ญ์
์ ์ฑ์ง์ด ์์์ ๋งํ ์ฌ๋ฌ ๋ฌธ์ ์ํฉ๋ค์ ๋ฐฉ์งํด์ค๋ค.
ํธ๋์ญ์
์ ์ฑ์ง
์์์ ๋งํ 4๊ฐ์ง ๋ฌธ์ ๋ค์ ํธ๋์ญ์
์ ์ฑ์ง์ ์ ์๋์ด ์๋ค.
๊ทธ๋ฆฌ๊ณ ์ด ์ฑ์ง๋ค์ ACID ๋ผ๊ณ ๋ถ๋ฅธ๋ค.
A : Atomicity (์์์ฑ)
C : Consistency (์ผ๊ด์ฑ)
I : Isolation (๋
๋ฆฝ์ฑ)
D : Durability (์ง์์ฑ)
์์ ์ฌ๋ก๋ค์ ํ๋์ฉ ๋ณด๋ฉด์ ๊ฐ๊ฐ ์ด๋ค ์ฑ์ง๊ณผ ๋๋น๋๋ ์ง ์ดํด๋ณด์ !
๋ง์ฝ, ์ก๊ธ ๋์ค A์ ๊ณ์ข์๋ ๋์ด ๋น ์ก๋๋ฐ B์ ๊ณ์ข์ ๋์ด ๊ทธ๋๋ก๋ผ๋ฉด?
์ด ์์๋ ์์์ฑ(Atomicity)์ ์งํค์ง ๋ชปํ ๊ฒ์ด๋ค.
ํ๋์ ์์
์ด ์ฑ๊ณตํ๊ณ ํ๋์ ์์
์ด ์คํจํ๋๋ฐ ๊ฒฐ๊ณผ๊ฐ DB์๏ฟผ ๋ฐ์๋ ๊ฒ์ด๋ค.
์์์ฑ์ ์งํจ๋ค๋ ๊ฒ์ ๋ชจ๋ ์์
์ด ๋ชจ๋ ์ฑ๊ณตํ๊ฑฐ๋ ์๋๋ฉด ๋ชจ๋ ์คํจํด์ผํ๋ค.
๋ง์ฝ, A์ ๊ณ์ข์ ๋์ด ๋ถ์กฑํ ์ํ์ธ๋ฐ ์ก๊ธ์ด ๋์๋ค๋ฉด?
์ด ์์๋ ์ผ๊ด์ฑ(Consistency)์ ์งํค์ง ๋ชปํ ๊ฒ์ด๋ค.
DB์๋ ์์ก์ ๋ง์ด๋์ค๊ฐ ๋ ์ ์๋ค๋ ์ ์ฝ์ด ์์์๋ ์ด๋ฅผ ์ด๊ธด ์ฑ ์ก๊ธ์ ์งํํ ๊ฒ์ด๋ค.
์ผ๊ด์ฑ์ ์งํจ๋ค๋ ๊ฒ์ ํธ๋์ญ์
์ด์ ,์ดํ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฝ์ด๋ ๊ท์น์ ๋ง์กฑํ๋ค๋ ๊ฒ์ด๋ค.
๋ง์ฝ, ์ก๊ธ ๋์ค ์น๊ตฌC๊ฐ ์ก๊ธ์ ๋ณด๋ด์ ์๋ก์ ๋ฐ์ดํฐ๊ฐ ์๊ฐ๋ฆฐ๋ค๋ฉด?
์ด ์์๋ ๋
๋ฆฝ์ฑ(Isolation)์ ์งํค์ง ๋ชปํ ๊ฒ์ด๋ค.
์น๊ตฌC์์ ํธ๋์ญ์
์ด ๋์์ ์คํ๋จ์ผ๋ก์จ ์ํฅ์ ๋ฏธ์น๊ฒ์ด๋ค.
(์น๊ตฌC๊ฐ ๋ณด๋ธ ๋์ ๋ํด์ง์ง ์๊ณ ๊ธฐ์กด ๊ธ์ก์ ๋ํด์ง์ผ๋ก์จ ์์ก์ด ๊ทธ๋๋ก)
๋
๋ฆฝ์ฑ์ ์งํค๊ธฐ ์ํด์๋ ํธ๋์ญ์
๋ค์ด ๋์์ ์คํ๋ ๋์๋ ํผ์ ์คํ๋๋ ๊ฒ์ฒ๋ผ ๋์ํด์ผํ๋ค.
๋ง์ฝ, ์ก๊ธ์ ์ ๋ง์ณค์์๋ ๋ฐ์ดํฐ๊ฐ ๋ ์๊ฐ ๋ฒ๋ฆฐ๋ค๋ฉด..?
์ด ์์๋ ์ง์์ฑ(Durability)์ ์งํค์ง ๋ชปํ๊ฒ์ด๋ค.
๋น์ฐํ ๋ง์ด์ง๋ง ์ ์ฅ๋ ๋ฐ์ดํฐ๋ ์๊ตฌ์ ์ผ๋ก DB์ ๋จ์์์ด์ผํ๋ค.
์๊ตฌ์ฑ์ ์งํค๊ธฐ ์ํด์๋ DB์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋๋ผ๋ ์ปค๋ฐ๋ ํธ๋์ญ์
์ด DB์ ๋จ์์์ด์ผํ๋ค.
์ฌ๊ธฐ๊น์ง๊ฐ ํธ๋์ญ์
์ ACID ์ฑ์ง์ด๋ค.
์ด๋ ๋ฏ์ด ํธ๋์ญ์
์ ACID ์ฑ์ง์ ์ ์งํด์ค์ผ๋ก์จ ๋ฐ์ดํฐ์ ์ ํฉ์ฑ์ ์ง์ผ์ค๋ค.
๐ง ์ ํฉ์ฑ์ด ๋ญ์ง?
๋ฐ์ดํฐ ์ ํฉ์ฑ์ ๋ฐ์ดํฐ๊ฐ ์๋ก ๋ชจ์ ์์ด ์ผ๊ด๋๊ฒ ์ผ์นํด์ผ ํจ์ ์๋ฏธํ๋ค !
๋ฏฟ์ ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ํด์ ์ ํฉ์ฑ์ด ๋ณด์ฅ๋์ด์ผํ๋ค.
์ง๊ธ๊น์ง ํธ๋์ญ์
์ ์ญํ ๊ณผ ACID ์ฑ์ง์ ๋ํด ์์๋ณด์๋ค !
์ด์ ํธ๋์ญ์
์ด ๋ญ์ง ๊ฐ์ด ์ค๋๊ฐ?
ํธ๋์ญ์
์ ์๊ฒ ๋๋ฐ ... ๊ฒฉ๋ฆฌ ์์ค์ ๋ญ์ง?
ํธ๋์ญ์
์ ๋ฐ์ดํฐ์ ์ ํฉ์ฑ์ ์ง์ผ์ค ์ ์๋ ์ข์ ์ฅ์น์ด๋ค.
ํ์ง๋ง ํธ๋์ญ์
๋ผ๋ฆฌ ์ ์ดํ๋ค ๋ณด๋ฉด ์ฌ๋ฌ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค.
๋ํ์ ์ผ๋ก ํฌ๊ฒ 3๊ฐ์ง ๋ฌธ์ ๊ฐ ์๋๋ฐ
1. dirty read
2. non repeatable read
3. phantom read
ํ๋ํ๋ ์์๋ณด์ !
๊ณ ๋ คํด๋ด์ผ ํ ๋ฌธ์ ์ ๋ค
์์์ ์ธ๊ธํ 3๊ฐ์ง์ ์ด์ ํ์๋ค์ ํ๋์ฉ ์์๋ณด๋ฉด์ ๊ฒฉ๋ฆฌ๋ ๋ฒจ์ด ์ ํ์ํ ์ง ์๊ฐํด๋ณด์ !
์๋์์ ์ค๋ช
ํ๋ ์ํฉ๋ค์ ๋ชจ๋ ํธ๋์ญ์
A,B๊ฐ ํ๋์ ๋ฐ์ดํฐ ๋ฒ ์ด์ค์ ์ ๊ทผํ๊ณ ๊ฐ์ ํ๋ค.
dirty read
์ฝ๊ฒ ๋งํด์ , ์ปค๋ฐ๋์ง ์์ ๋ณํ๋ฅผ ์ฝ๋ ๊ฒ์ด๋ค.
ํธ๋์ญ์
A์ B๊ฐ ๊ฐ๊ฐ ๋ค๋ฅธ ๋ฐ์ดํฐ์ ์ ๊ทผํด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ณํ์ํค๋ ์ํฉ์ ์๊ฐํด๋ณด์
ํธ๋์ญ์
A๋ x๋ฅผ ๋ณํ์ํค๊ณ , ํธ๋์ญ์
B๋ y๋ฅผ ๋ณํ์ํจ๋ค.
์ด๋ค ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊น?
๋ญ๊ฐ ์ด์ํ์ง ์์๊ฐ?
x์ ๋ํ y์ ๊ฐ 10์ ๋ ์ด์ ์ ํจํ์ง ์์ ๊ฐ์ด๋ค.
์ฆ, ์์์ ๋งํ๋ค์ํผ ์ปค๋ฐ๋์ง ์์ ๋ณํ๋ฅผ ์ฝ์ด์ ๋ฌธ์ ๊ฐ ์๊ธด๊ฒ์ด๋ค.
non repeatable read
๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ์ ๋ ๊ฐ์ด ๋ค๋ฅด๊ฒ ๋์ค๋ ๊ฒ์ด๋ค.
ํธ๋์ญ์
A๊ฐ x์ ๊ฐ์ ์ฒ์ ์ฝ์์ ๋๋ 50์ด์๋ค.
๊ทธ ์ฌ์ด์ ํธ๋์ญ์
B๊ฐ x์ ๊ฐ์ 10์ผ๋ก ๋ณ๊ฒฝํ๊ณ , ๋ค์ ํธ๋์ญ์
A๊ฐ x๋ฅผ ์ฝ์์ ๋๋ x์ ๊ฐ์ 10์ด ๋์จ๋ค.
๊ฐ์ x๋ผ๋ ๋ฐ์ดํฐ์ ๊ฐ์ ์กฐํํ์ง๋ง ์กฐํํ ๋๋ง๋ค ๊ฐ์ด ๋ค๋ฅด๊ฒ ๋์ค๋ ๊ฒ์ด๋ค.
์ด๋ ๊ณง isolation ๊ด์ ์์ ๋ฐ๋์งํ์ง ๋ชปํ๋ค.
๐งisolation ์์์ ๋ฐฐ์ ๋๋ฐ .. !
์ฌ๋ฌ ๊ฐ์ ํธ๋์ญ์
๋ค์ด ๋์์ ์ํ๋ ๋, ๊ฐ ํธ๋์ ์
์ ๊ณ ๋ฆฝ(๊ฒฉ๋ฆฌ)๋์ด ์์ด ์ฐ์์ผ๋ก ์คํ๋ ๊ฒ๊ณผ ๋์ผํ ๊ฒฐ๊ณผ๋ฅผ ๋ํ๋ธ๋ค.
phantom read
์๋ ๋ฐ์ดํฐ๊ฐ ์๊ธฐ๋ ๊ฒ์ด๋ค.
์ด ์ํฉ๋ ๋ง์ฐฌ๊ฐ์ง๋ก ๋๊ฐ์ ์กฐ๊ฑด์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ๋ ๋ฐ ๊ฒฐ๊ณผ๊ฐ ๋ค๋ฅด๊ฒ ๋์จ๋ค.
์ด ์ญ์ isolation ์์น์ ์๋ฐฐ๋๋ค๊ณ ํ ์ ์๋ค.
์ง๊ธ๊น์ง ์๊ฐํ 3๊ฐ์ง๊ฐ ๋ํ์ ์ผ๋ก ๋ํ๋๋ ๋ฌธ์ ์ ๋ค์ด๋ค.
๐ง ์ ๊ทธ๋ผ ํด๊ฒฐ์ฑ
์ ๊ฐ๋จํ๋ค์ ! ๋ค ๋ง์๋ฒ๋ฆฌ๋ฉด ๋๋ ๊ฑฐ์ฃ ?
๋ฌผ๋ก ๊ทน๋์ ์์ ์ ์ธ ํ๊ฒฝ์ ์ํด์๋ผ๋ฉด ๊ทธ๋ ๊ฒ ํ ์๋ ์์ง๋ง ์ด๋ ์ข์ ๋ฐฉ๋ฒ์ด ์๋๋ค.
์ฝ๋ก๋ ๊ฑฐ๋ฆฌ๋๊ธฐ ๋จ๊ณ๋ฅผ ๋ ์ฌ๋ ค๋ณด์
์ฌ์ค ์ฝ๋ก๋ ํ์ง์๊ฐ ์๋์ค๊ฒ ํ๋ ๋ฐฉ๋ฒ์ ์ด๋ป๊ฒ ๋ณด๋ฉด ๋งค์ฐ ๊ฐ๋จํ ์ ์๋ค.
์๋ฌด๊ฒ๋ ํ์ง ๋ชปํ๊ฒํ๋ฉด ์ฝ๋ก๋ ํ์ง์๋ ์๋์์ ๊ฒ์ด๋ค.
๊ทผ๋ฐ ํ์ค์ ๋ค๋ฅด๋ค.
๊ฑฐ๋ฆฌ๋๊ธฐ ๋จ๊ณ์ ๋ฐ๋ผ์ ํ์ฉ๋๋ ๊ฒ์ด ์๊ณ ๊ธ์ง๋๋ ๊ฒ๋ค์ ์ ํด๋์๋ค.
์์ผ๊น?
๋๋ฌด๋ ๋น์ฐํ ์๊ธฐ์ด์ง๋ง, ๋ชจ๋ ๊ฒ์ ๊ธ์ง์์ผ ๋ฒ๋ฆฌ๋ฉด ์ฌํ๋ ๋์๊ฐ์ง ์๊ธฐ ๋๋ฌธ์ด๋ค.
๊ทธ๋์ ๋จ๊ณ์ ๋ฐ๋ผ ์ค์์ฌํญ๋ค์ ์กฐ์ ํจ์ผ๋ก์จ ๊ด๋ฆฌํ๋ ๊ฒ์ด๋ค.
ํธ๋์ญ์
์๋ ๋น์ทํ ๊ฐ๋
์ด ์ ์ฉ๋๋ค.
๊ฒฉ๋ฆฌ๋ ๋ฒจ์ด ์ฌ๋ผ๊ฐ ์๋ก ์์ ์ฑ์ ๋์์ง์ง๋ง ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋์ด ์ ํ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ ๋ํด ์ ํด๋์ ํ์ค SQL ๊ธฐ์ค์ ์์๋ณด๋ ค๊ณ ํ๋ค.
SQL ํ์ค ๊ฒฉ๋ฆฌ ๋ ๋ฒจ
SQL ํ์ค์์๋ ์์์ ๋งํ ๋ฌธ์ ๋ค์ ์ด๋๊น์ง ํ์ฉํ ์ง ๊ตฌ๋ถํ๋ ๊ฒฉ๋ฆฌ๋ ๋ฒจ์ ์ง์ ํ์๋ค.
Read uncommitted
Read uncommitted ๋ ๋ฒจ์ ์ปค๋ฐ๋์ง ์์ ๋ณํ๋ ๋ค๋ฅธ ํธ๋์ญ์
์ด ์ฝ์ ์ ์๋ค.
์๋ ์์๋ฅผ ๋ณด์, ํธ๋์ญ์
1์ด ์๋ก์ด ๋ฐ์ดํฐ๋ฅผ ๋ฃ๊ณ ์ปค๋ฐ์ ํ์ง ์์ ์ํ์ด์ง๋ง ํธ๋์ญ์
2๋ ์ด๊ฒ์ ์ฝ์ ์ ์๋ค.
์ฌ์ค์ ๊ฒฉ๋ฆฌ๊ฐ ์์ ์๋ ๊ฑฐ๋ ๋ง์ฐฌ๊ฐ์ง์ด๋ฏ๋ก ์ต์ํ Read committed ์ด์ ๋ ๋ฒจ์ ์ฌ์ฉ์ ๊ถ์ฅํ๋ค.
Read uncommitted ๋ ๋ฒจ์์ ๋ฐ์ํ ์ ์๋ ๋ฌธ์ ์
- ์ด ๋ ๋ฒจ์์๋ ๋ง์ ๋ฌธ์ ๋ค์ด ๋ฐ์ํ ์ ์์ง๋ง ๋ํ์ ์ผ๋ก Dirty Read ์ ๋ํด ๋ค๋ค๋ณด๊ณ ์ ํ๋ค.
์์์ dirty read๋ ์ปค๋ฐ๋์ง ์์ ๋ณํ๋ฅผ ์ฝ์์ผ๋ก์จ ๋ํ๋๋ ๋ฌธ์ ๋ผ๊ณ ํ์๋๋ฐ Read uncommitted ์์ ๊ทธ ๋ฌธ์ ๊ฐ ๊ทธ๋๋ก ๋ฐ์ํ๋ค.
ํธ๋์ญ์
B๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ๋ถํฐ Y๋ฅผ ์ฝ๊ธฐ๋ก ํ์๋ค.
ํ์ง๋ง B๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฝ๋ ๋์ค ํธ๋์ญ์
A๊ฐ Y์ ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํ์๊ณ B๋ ๊ฒฉ๋ฆฌ๋ ๋ฒจ ํน์ฑ์ ์ปค๋ฐ๋์ง ์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ๋์๋ค.
ํ์ง๋ง A๊ฐ ๋ณ๊ฒฝํ ๋ฐ์ดํฐ๊ฐ ์ปค๋ฐ๋์ง ์๊ณ ๋กค๋ฐฑ๋๋ค๋ฉด ์ด๋ป๊ฒ ๋ ๊น?
ํธ๋์ญ์
B๊ฐ ์ฝ์ Y์ ๋ฐ์ดํฐ๋ ๋ ์ด์ ์ ํจํ ๊ฐ์ด ์๋๊ฒ ๋๋ค.
์ด ํ์์ dirty read ๋ผ๊ณ ๋ถ๋ฅธ๋ค.
์ฆ, ํธ๋์ญ์
์์ ์ฒ๋ฆฌํ ์์
์ด ์๋ฃ๋์ง ์์์์๋ ๋ถ๊ตฌํ๊ณ ๋ค๋ฅธ ํธ๋์ญ์
์์ ๋ณผ ์ ์๊ฒ ๋๋ ํ์์ด๋ค.
Read committed
Read committed ๋จ๊ณ์์๋ ์ปค๋ฐ๋ ๋ฐ์ดํฐ๋ง ์ฝ๊ธฐ ๋๋ฌธ์ dirty read ์ ๊ฐ์ ํ์์ ๋ฐ์ํ์ง ์๋๋ค.
์ด๋ป๊ฒ ์ด๊ฒ์ ๊ตฌํํ ์ ์์์๊น?
๋ฐ๋ก undo ์์ญ์ ๋ฐ๋ก ๋ง๋ค์ด์ค์ผ๋ก์จ ๋ฐฑ์
๋ ๋ฐ์ดํฐ๋ง์ ๊ฐ์ ธ์ค๊ธฐ ๋๋ฌธ์ด๋ค.
๋ฐ์ ๊ทธ๋ฆผ์ ๋ณด๋ฉด ํธ๋์ญ์
1์์ ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํ๊ธฐ ์ ์ ํ
์ด๋ธ์ ๋ฐฑ์
ํ๋ค.
๊ทธ๋ฆฌ๊ณ ํ
์ด๋ธ์ ๋ณ๊ฒฝ๋ ๋ฐ์ดํฐ๊ฐ ๋ฐ์๋๋ค.
ํธ๋์ญ์
2์์๋ undo ์์ญ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ธฐ ๋๋ฌธ์ ์ด์ ์ ์ปค๋ฐ๋ ๋ฐ์ดํฐ๋ง ๋ณผ ์ ์๋ ๊ฒ์ด๋ค !
Read committed ๋ฐ์ํ ์ ์๋ ๋ฌธ์ ์
- ์ด ๋ ๋ฒจ์์๋ non repeatable read ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
๋ฌด์์ด ๋ฌธ์ ์ผ๊น? ๋ค์ ์์๋ฅผ ๋ณด์
ํธ๋์ญ์
B๊ฐ Y๋ฅผ ๋๋ฒ ์กฐํํ๋ค๊ณ ๊ฐ์ ํ์
์ฒซ๋ฒ์งธ๋ก ์กฐํํ์ ๋๋ Y๊ฐ 50์ด ๋์์ง๋ง ๋๋ฒ์งธ๋ก ์กฐํํ์ ๋ 70์ด ๋์๋ค.
์ผํ ์๊ฐํ๋ฉด ํฌ๊ฒ ๋ฌธ์ ๋ ๊ฒ ์์ด๋ณด์ด๋ ๋ฐ , ์ด๋ ACID ์์ฑ ์ค ๋
๋ฆฝ์ฑ์ ์ด๊ธ๋๋ค.
๐ง ๋
๋ฆฝ์ฑ ๋ฒ์จ ๋ช๋ฒ์งธ์ผ ..
๋์์ ์ฌ๋ฌ ๊ฐ์ ํธ๋์ญ์
๋ค์ด ์ํ๋ ๋, ๊ฐ ํธ๋์ ์
์ ๊ณ ๋ฆฝ(๊ฒฉ๋ฆฌ)๋์ด ์์ด ์ฐ์์ผ๋ก ์คํ๋ ๊ฒ๊ณผ ๋์ผํ ๊ฒฐ๊ณผ๋ฅผ ๋ํ๋ธ๋ค.
Repeatable read
์ด๋ป๊ฒ ํ๋ฉด ํธ๋์ญ์
๋ด์์ ํน์ ํ์ ์กฐํํ ๋ ๋ง๋ค ํญ์ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋์ค๋๋ก ํ ์ ์์๊น?
Repeatable read ์์๋ ์ด๋ฅผ ํธ๋์ญ์
ID ๋ฅผ ํตํด ํด๊ฒฐํ๋ค.
์ด๋ ๊ฒ ๋ถ์ฌ๋ ํธ๋์ญ์
ID๋ณด๋ค ์์ ํธ๋์ญ์
๋ฒํธ์์ ๋ณ๊ฒฝํ ๊ฒ๋ง ์ฝ๊ฒ ๋๋ค.
๊ทธ๋ฆฌ๊ณ undo ๋ก๊ทธ๊ฐ ๋ง์์ง๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฑ๋ฅ์ด ๋จ์ด์ง ์ ์๊ธฐ๋๋ฌธ์ DB์์ง์์๋ ๋ถํ์ํ undo ๋ก๊ทธ๋ฅผ ์ฃผ๊ธฐ์ ์ผ๋ก ์ญ์ ํ๋ค.
Repeable read์์ ๋ฐ์ํ ์ ์๋ ๋ฌธ์ ์
- ์ด ๋ ๋ฒจ์์๋ phantom read ๋ผ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค.
์์๋ฅผ ์ดํด๋ณด์
๋งจ์ฒ์ ๋ฐ์ดํฐํ์ ์กฐํํ์ ๋ 1๊ฐ๊ฐ ๋์์ง๋ง ๋์ค์ ํ๋ฒ ๋ ์กฐํํ์ ๋ ํ๋๊ฐ ์ถ๊ฐ๋ 2๊ฐ ๋์๋ค.
์ด๋ undo ํ
์ด๋ธ์ ์ฐ๊ธฐ ์ ๊ธ์ ํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ฐ์ํ๋๋ฐ ๊ฒฐ๊ตญ ํ์ฌ ๋ฐ์ดํฐ์ ๊ฐ์ ๊ฐ์ ธ์ค๊ฒ ๋๋ค.
(innoDB์์๋ ํฌํ
๋ฆฌ๋๊ฐ ๋ฐ์ํ์ง ์๋๋ค๊ณ ํ๋ค!)
Serializable
ํน์ ํธ๋์ญ์
์ด ์ฌ์ฉ์ค์ด๋ฉด ๋ค๋ฅธ ํธ๋์ญ์
์ ์ผ์ฒด ์ ๊ทผํ ์ ์๋ค.
๋ฐ์ดํฐ์ ์์ ์ฑ(์ ํฉ์ฑ)์ ๋์ผ๋ ์ฒ๋ฆฌ๋์ ๋จ์ด์ง๋ค.
๋ฐ์ํ ์ ์๋ ๋ฌธ์ ์
- ์์
๋ค์ ํ๋ก ์ ๋ฆฌํด๋ณด์
์ด์ฒ๋ผ ๊ฒฉ๋ฆฌ ๋จ๊ณ์ ๋ฐ๋ผ ํ์ฉํ๋ ์ค๋ฅ๋ค์ด ์ ํด์ ธ์๋ค.
๊ฐ๊ฐ์ ์ฉ๋์ ๋ง๊ฒ ์ ์ ํ๊ฒ ๊ฒฉ๋ฆฌ ๋ ๋ฒจ์ ์ง์ ํ๋ ๊ฒ์ด ์ค์ํ๋ค.
๊ฒฐ๋ก
๋ฐ์ดํฐ์ ์ ํฉ์ฑ์ ๋ณด์ฅํด์ฃผ๊ธฐ ์ํด์ ํธ๋์ญ์
์ ์ฌ์ฉํด์ผํ๋ค.
ํ์ง๋ง ํธ๋์ญ์
๋ผ๋ฆฌ ๋์์ ์คํ๋๋ค ๋ณด๋ฉด ์ฌ๋ฌ ๋ฌธ์ ๋ค์ด ๋ฐ์ํ๋ ๋ฐ
SQL ํ์ค์์ ์ด๋ฅผ ์ด๋๊น์ง ํ์ฉํ ๊ฒ์ธ์ง์ ๋ํ ๊ฒฉ๋ฆฌ ๋จ๊ณ๋ฅผ ์ง์ ํด๋์๋ค.
๊ฐ์ ์ํฉ์ ๋ฐ๋ผ ์ ์ ํ ๊ฒฉ๋ฆฌ ๋จ๊ณ๋ฅผ ์ ํํด์ผํ๋ค.
์ฐธ๊ณ ์๋ฃ
[MySQL] - ํธ๋์ญ์
์ ๊ฒฉ๋ฆฌ ์์ค(Isolation level)
[MySQL] - ํธ๋์ญ์
์ ๊ฒฉ๋ฆฌ ์์ค(Isolation level)
๐ ๊ธ๋ 6๊ธฐ ํฌ์คํ
1. ๋ฏธ์น๋๋ก ๋์ ๋ 7์์ ํ๊ณ 2. ์ฌ์ฉ์๊ฐ ๊ฒ์๋ฌผ์ ์์ฑํ ๋์ ํธ๋์ญ์
์ฒ๋ฆฌ 3. Spring AOP - (1) ํ๋ก์ ํจํด, ๋ฐ์ฝ๋ ์ดํฐ ํจํด 4. [MySQL] - ํธ๋์ญ์
์ ๊ฒฉ๋ฆฌ ์์ค(Isolation level) 5
zzang9ha.tistory.com
ํธ๋์ญ์
๊ฒฉ๋ฆฌ ์์ค
ํธ๋์ญ์
๊ฒฉ๋ฆฌ ์์ค
Transaction Isolation Level ์ ํ๋ฆฌ์ผ์ด์
์ ๊ฐ๋ฐ ์ค ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋์
ํ๋ฉด ๊ฒฉ๋ฆฌ ์์ค์ ๋ํ ์ดํด๊ฐ ์์ฐ์ค๋ฝ๊ฒ ์๊ตฌ๋ฉ๋๋ค. ๊ฒฉ๋ฆฌ ์์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ACID ์ฑ์ง ์ค Isolationโฆ
tecoble.techcourse.co.kr
[๋ฐ์ดํฐ๋ฒ ์ด์ค] ํธ๋์ญ์
์ ACID ์ฑ์ง - ํ๋๋ชฌ
[๋ฐ์ดํฐ๋ฒ ์ด์ค] ํธ๋์ญ์
์ ACID ์ฑ์ง - ํ๋๋ชฌ
ํธ๋์ญ์
์ด๋ ์ฌ๋ฌ ๊ฐ์ ์์
์ ํ๋๋ก ๋ฌถ์ ์คํ ์ ๋์ ๋งํ๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค ํธ๋์ญ์
์ ACID๋ผ๋ ํน์ฑ์ ๊ฐ์ง๊ณ ์๋ค. ACID๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด์์ ์ผ์ด๋๋ ํ๋์ ํธ๋์ญ์
(transaction)์ ์
hanamon.kr
ํธ๋์ญ์
์ ๊ฒฉ๋ฆฌ ์์ค(isolation Level)์ด๋?
ํธ๋์ญ์
์ ๊ฒฉ๋ฆฌ ์์ค(isolation Level)์ด๋?
nesoy.github.io
https://www.youtube.com/watch?v=bLLarZTrebU&t=397s
https://www.youtube.com/watch?v=sLJ8ypeHGlM&t=144s