Notice
Recent Posts
Recent Comments
Link
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- ์์
- mysql
- index skip scan
- ๋ฐ์ฉ๋ ์ค๊ตญ์ด
- Hikari Connection Pool
- ๋น์ผ๊ฐ์ฒด์์ฑ
- index full scan
- InnoDB์ํคํ ์ฒ
- effectiveJava
- ์๋ฐ
- SVN
- ์ธ๋ฑ์คํ์ค์บ
- ์๋ฐ๋ผ์ด๋ธ์คํฐ๋
- ์๋ผ์คํฑ์์น๋ฉ์ธ์ง์ฉ๋
- ์๋ฐ์ฐ๋ ๋
- ์ํฐ๋ ๋ณ์ข ๊ฐ๋ฐ์
- item15
- hikari cp ์ค์
- ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฒฉ๋ฆฌ์์ค
- mysql์ํคํ ์ฒ
- ์ํฐ๋ ๊ฐ๋ฐ์ํ์ฌ
- builder null
- ์ดํํฐ๋ธ์๋ฐ
- assert.notnull
- Item6
- ์ธ๋ฑ์ค์คํต์ค์บ
- ์๋ฐ์์
- ์์ดํ 15
- enum ์์ฑ์ ์ ๊ทผ ์ ํ์
- ์๋ฐ์์์ฐ๋ ๋๋ฅผ ์ฌ์ฉํ๋ ์ด์
Archives
- Today
- Total
โ๐ป๊ธฐ๋กํ๋ ๋ธ๋ก๊ทธ
Transaction Isolation ๋ ๋ฒจ ๋ณธ๋ฌธ
728x90
ํธ๋์ญ์ Isolation์ค๋ช ์ ํ์ํ ์ฌ๋ฌ ์ฉ์ด๋ฅผ ๋จผ์ ์ ๋ฆฌํ์.
Transaction
- ๋ฐ์ดํฐ์ ์ ํฉ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํ ๊ธฐ๋ฅ
- db read, write์์ ์ ๋ ผ๋ฆฌ์ ์ผ๋ก ๋ฌถ๋ ๋ฐฉ์
- ํธ๋์ญ์ ์ผ๋ก ๋ฌถ์ ์์ ์ด ์ฑ๊ณตํ๋ฉด commit, ์คํจ ์ rollback์ ํ๋ฏ๋ก ๋ถ๋ถ์ฑ๊ณต, ๋ถ๋ถ ์คํจ(Partial Update)์ ์ํ์ด ์์
Lock
- ๋์์ฑ์ ์ ์ดํ๊ธฐ ์ํ ๊ธฐ๋ฅ
- ์ฌ๋ฌ ์ปค๋ฅ์ ์์ ๋์์ ๋์ผํ ์์์ ์์ฒญํ ๊ฒฝ์ฐ ์์๋๋ก ํ๋์ ์ปค๋ฅ์ ๋ง ๋ณ๊ฒฝํ ์ ์๊ฒ ํ๋ ์ญํ
Isolation level
- ๋์์ ํ๋ ๋๋ ์ฌ๋ฌ ํธ๋์ญ์ ์ด ์งํ ๋ ๋, ๋ค๋ฅธ ํธ๋์ญ์ ์์ ๋ณ๊ฒฝ๋ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๋ ๊ธฐ์ค
- ์ผ๋ฐ์ ์ธ ์๋น์ค์์๋ Read Commited, Repeatable Read๋ฅผ ์ฌ์ฉ
Transaction Isolation
Read Commited
๋๋ถ๋ถ์ DBMS์์์ ๊ธฐ๋ณธ ์ค์
- ์ปค๋ฐ๋ ๋ฐ์ดํฐ๋ง ์ฝ์
dirty read
๊ฐ ๋ฐ์ํ์ง ์๋๋ก ๋ณด์ฅNon-Repeatable Read
๋ฐ์ ๊ฐ๋ฅ
Read Uncommited
- postgresql์์ ์ง์ํ์ง ์์
- ๊ฐ ํธ๋์ญ์ ์์์ ๋ณ๊ฒฝ ๋ด์ฉ์ด Commit, Rollback ์ฌ๋ถ ์๊ด์์ด ๋ค๋ฅธ ํธ๋์ญ์ ์ ์กฐํ๋จ
dirty read
๋ฐ์ ๊ฐ๋ฅ
Repeatable Read
- Undo ์์ญ์ ๋ฐฑ์ ๋ ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํด ๋์ผ ํธ๋์ญ์ ๋ด์์ ๊ฐ์ ๊ฒฐ๊ณผ ๋ณด์ฅ
- MySql์ InnoDB ์์ ๊ธฐ๋ณธ์ผ๋ก ์ฌ์ฉ๋๋ ๊ฒฉ๋ฆฌ ์์ค
- MVCC(Multi Version Concurrency Control)
- InnoDB์คํ ๋ฆฌ์ง ์์ง์ ํธ๋์ญ์ ์ด Rollback ๊ฐ๋ฅ์ฑ์ ๋๋นํด ๋ณ๊ฒฝ ์ ๋ ์ฝ๋๋ฅผ Undo ๊ณต๊ฐ์ ๋ฐฑ์ ํ ์ค์ ๋ ์ฝ๋๊ฐ ๋ณ๊ฒฝ
- MVCC(Multi Version Concurrency Control)
- Read Commited๋ Undo์์ญ์ ๋ฐฑ์ ๋ ๋ฐ์ดํฐ๋ฅผ ๋ณด์ฌ์ฃผ์ง๋ง, ๋์ ์ฐจ์ด๋ ๋ฐฑ์ ๋ ๋ฐ์ดํฐ ์ค ์ด๋ค ์ด์ ๋ฒ์ ์ ๋ณด์ฌ์ฃผ๋์ง ์ฐจ์ด๊ฐ ์๋ค.
Serializable
- ๊ฐ์ฅ ์๊ฒฉํ ๊ฒฉ๋ฆฌ ์์ค
- ์ฝ๊ธฐ ์์ ๋ ์ฝ๊ธฐ ์ ๊ธ์ ํ๋ํด์ผ ํ๋ฉฐ, ๋์์ ๋ค๋ฅธ ํธ๋์ญ์ ์ ํด๋น ๋ ์ฝ๋ ๋ณ๊ฒฝ ๋ถ๊ฐ
ํธ๋์ญ์ ์์ ๋ฐ์ ๊ฐ๋ฅํ ๋ถ์ ํฉ ํ์
Non-Repeatable Read
- ํ๋์ ํธ๋์ญ์ ๋ด์์ select ์ฟผ๋ฆฌ๋ฅผ ์คํํ์ ๋ ํญ์ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ๋์ค์ง ์๋ ํ์
- ๊ฒฉ๋ฆฌ ์์ค ์ค์ ์ ๋ฐ๋ผ์ค๋ ๋ถ์ ํฉ ๋ชฉ๋ก
Dirty Read
- ํธ๋์ญ์ ์์ ์ฒ๋ฆฌํ ์์ ์ด ์๋ฃ(Commit, Rollback)๋์ง ์์์ ๊ฒฝ์ฐ ๋ค๋ฅธ ํธ๋์ญ์ ์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๋ ํ์
Phantom Read(Phantom Row)
- ๋ค๋ฅธ ํธ๋์ญ์ ์์ ์ํํ ๋ณ๊ฒฝ ์์ ์ ์ํด ๋ ์ฝ๋๊ฐ ๋ณด์๋ค ์ ๋ณด์๋ค ํ๋ ํ์
- select ํ๋ ๋ ์ฝ๋์ ์ฐ๊ธฐ ์ ๊ธ์ ๊ฑธ์ด์ผ ํ์ง๋ง, Undo์์ญ ๋ ์ฝ๋์๋ ์ ๊ธ์ด ๋ถ๊ฐ
728x90
๋ฐ์ํ
'DB > RDBMS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
B-Tree (0) | 2023.01.29 |
---|---|
Mysql - InnoDB ์คํ ๋ฆฌ์ง ์์ง ์ ๊ธ (0) | 2022.12.31 |
Transaction & Lock (0) | 2022.12.24 |
MySQL - InnoDB & MyISAM ์คํ ๋ฆฌ์ง ์์ง ์ํคํ ์ฒ (0) | 2022.12.05 |