MVCC(Multi-Version Concurrency Control)
1. MVCC์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๋ ๋ฐฉ๋ฒ
1) Current
๋์คํฌ์์ ์บ์๋ก ์ ์ฌ๋ ์๋ณธ ๋ธ๋ก์ ํ์ฌ ์ํ ๊ทธ๋๋ก ์ฝ๋ ๋ฐฉ์
2) Consistent
์ฟผ๋ฆฌ๊ฐ ์์๋ ์ดํ์ ๋ค๋ฅธ ํธ๋์ญ์ ์์ ์ํด ๋ณ๊ฒฝ๋ ๋ธ๋ก์ ๋ง๋๋ฉด ์๋ณธ ๋ธ๋ก์ผ๋ก๋ถํฐ ๋ณต์ฌ๋ณธ(CR copy) ๋ธ๋ก์ ๋ง๋ค๊ณ , ๊ฑฐ๊ธฐ์ Undo ๋ฐ์ดํฐ๋ฅผ ์ ์ฉํจ์ผ๋ก์จ ์ฟผ๋ฆฌ๊ฐ โ์์๋ ์์ โ์ผ๋ก ๋๋๋ ค์ ์ฝ๋ ๋ฐฉ์

2. SCN(System Commit Number)
Consistent ๋ชจ๋๋ฅผ ์ดํดํ๋ ค๋ฉด SCN์ ์์์ผ ํ๋ค.

Consistent ๋ชจ๋๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ๋ค๊ฐ
๋ธ๋ก SCN > ์ฟผ๋ฆฌ SCN ? ๋ณธ์ฌ๋ณธ ๋ธ๋ก ๋ง๋ค๊ณ , Undo ๋ฐ์ดํฐ๋ฅผ ์ ์ฉํ๋ค.
โ ์ฟผ๋ฆฌ๊ฐ ์์๋ ์์ ์ผ๋ก ๋๋๋ ค์ Read Consistency๊ฐ ๊ฐ๋ฅํด์ง๋ค.
SELECT : ํญ์ Consistent
๋ชจ๋๋ก ๋ฐ์ดํฐ Read
DML : Consistent๋ก ์ฐพ๊ณ , Current
๋ชจ๋๋ก ์ถ๊ฐ/๋ณ๊ฒฝ/์ญ์ ํ๋ค. ๋ฐ์ดํฐ ๋ณ๊ฒฝ์ ์๋ณธ ๋ธ๋ก์ ๊ฐฑ์ ํ๋ค.
์ด๋ฌํ ํน์ฑ์ผ๋ก ์ธํด ์ผํ๋ชฐ์์ ์ฃผ๋ฌธ ์ Repeatable Read์์ MVCC๋ก ์ธํ ์ฌ๊ณ ์๋์ด ๋ง์ด๋์ค๊ฐ ๋๋ ๊ฒ๊ณผ ๊ฐ์ ๋ฌธ์ (๋์์ฑ)๊ฐ ๋ฐ์ํ ์ ์๋ค.

Reference
์น์ ํ SQL ํ๋
Uploaded by N2T