2023. 2. 28. 15:16ใ๐พBackEnd/โ DataBase
MYSQL ๊ฒฉ๋ฆฌ ์์ค
๊ฒฉ๋ฆฌ ์์ค
์ฌ๋ฌ ํธ๋์ญ์ ์ด ๋์์ ์ฒ๋ฆฌ๋ ๋ ํน์ ํธ๋์ญ์ ์ด ๋ค๋ฅธ ํธ๋์ญ์ ์์ ๋ณ๊ฒฝํ๊ฑฐ๋ ์กฐํํ๋ ํ ์ด๋ธ์ ๋ณผ ์ ์๊ฒ ์ฒ๋ฆฌ๋ฅผ ํ ๊ฒ์ธ์ง ๊ฒฐ์ ํ๋ ๊ฒ์ด๋ค.
1. Read Uncommitted

- Read Uncommitted ๊ฒฉ๋ฆฌ ์์ค์ ๊ฐ ํธ๋์ญ์ ์์ ๋ณ๊ฒฝ ๋ด์ฉ์ด commit , Rollback ์ฌ๋ถ์ ์๊ด์์ด ๋ค๋ฅธ ํธ๋์ญ์ ์ ๋ณด์ธ๋ค. (Dirty Read)
โ ์ฌ์ฉ์ A๊ฐ insert๋ฅผ ํ๊ณ ์ฌ์ฉ์ B๊ฐ commit ์ด ๋์ง ์์ ๋ฐ์ดํฐ๋ฅผ select๋ก ์ ๊ทผ์ ํ๋ค.
โ ๋ง์ฝ์ Insert ํ๋ ๊ฒฝ์ฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ฌ ๋กค๋ฐฑ์ ํ๊ฒ ๋๋ค๋ฉด ์ฌ์ฉ์B๋
์ด๋ค ๋ฐ์ดํฐ๋ฅผ ์ ๊ทผ์ ํ๊ณ ์์๊น? โ ๋กค๋ฐฑ์ด ๋์ง ์์ ๋ฐ์ดํฐ๋ฅผ ์ ๊ทผ
โ ์ด์ฒ๋ผ Read Uncommitted๋ ์ ํฉ์ฑ์ ๋ง์ ๋ฌธ์ ๊ฐ ์๋ค.
2. Read Committed


- ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ๊ฒฉ๋ฆฌ ๋ ๋ฒจ โ ์ค๋ผํด์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉ
- ์ธ๋๋ก๊ทธ์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๊ธฐ ๋๋ฌธ์ ๋ํฐ ๋ฆฌ๋ ๋ฌธ์ ์ ํด๊ฒฐ
- ํ์ง๋ง ๋ฌธ์ ์ ์ด ์๋ค. (์ ํฉ์ฑ์ ๋ฌธ์ )
- Bob์ด ์ฒ์์ select๋ฅผ ํ๋ฉด ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์จ๋ค. Alice๊ฐ update ์ดํ์ commit์ ํ๋ฉด Bob์ ์๋ก์ด ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์จ๋ค.
- ๋ฌธ์ ๊ฐ ์๋๊ฑฐ ์ฒ๋ผ ๋ณด์ด์ง๋ง Bob์ ํ๋์ ํธ๋์ญ์ ๋ด์์ ๋๊ฐ์ select ์ฟผ๋ฆฌ๊ฐ ์คํ์ด ๋๋ฉด ํญ์ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ๋ณด์ฌ์ผ ๋๋ค.
- ์ด๋ ์ ํฉ์ฑ์ ์ด๊ธ๋๊ฒ ๋๋ค.
3. Repeatable Read (InnoDB)
- ํธ๋์ญ์ ์์ด๋๋ฅผ ํตํ์ฌ ์ ํฉ์ฑ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค.


- ๊ธฐ์กด์ ๋ฌธ์ ์ ์ ํ ํธ๋์ญ์ ์ ๋๊ฐ์ SELECT์ฟผ๋ฆฌ๋ฅผ ํ์์ ๋ ๋ค๋ฅธ ๊ฒฐ๊ณผ ๊ฐ์ ์ฃผ์ด ์ ํฉ์ฑ์ ๋ฌธ์ ๊ฐ ์๊ฒผ๋ค.
- ์ด๊ฒ์ ํด๊ฒฐํ๊ธฐ ์ํด ํธ๋์ญ์ ์์ด๋๋ฅผ ์ฃผ์ด ์ ํฉ์ฑ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค.
- ํ ํธ๋์ญ์ ์ SELECT๋ฅผ ํ๊ฒ ๋๋ฉด ํธ๋์ญ์ ์์ด๋์ ๋๊ฐ์ ์ธ๋๋ก๊ทธ์
๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ธฐ ๋๋ฌธ์ ํญ์ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ ์ ์๋ค.
'๐พBackEnd > โ DataBase' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
MySQL - ์ธ๋ฑ์ค (0) | 2023.02.28 |
---|---|
MYSQL - LOCK (0) | 2023.02.28 |
MySQL ์์ง ์ํคํ ์ฒ (0) | 2023.02.10 |