4.2 InnoDB ์คํ ๋ฆฌ์ง ์์ง ์ํคํ ์ฒ 4.2.1 ํ๋ผ์ด๋จธ๋ฆฌ ํค์ ์ํ ํด๋ฌ์คํฐ๋ง 4.2.2 ์ธ๋ ํค ์ง์ 4.2.3 MVCC(Multi Version Concurrency Control) 4.2.4 ์ ๊ธ ์๋ ์ผ๊ด๋ ์ฝ๊ธฐ(Non-Locking Consistent Read) 4.2.5 ์๋ ๋ฐ๋๋ฝ ๊ฐ์ง 4.2.6 ์๋ํ๋ ์ฅ์ ๋ณต๊ตฌ
2.7 InnoDB ๋ฒํผ ํ
- InnoDB ์คํ ๋ฆฌ์ง ์์ง์์ ๊ฐ์ฅ ํต์ฌ์ ์ธ ๋ถ๋ถ
- ๋์คํฌ์ ๋ฐ์ดํฐ ํ์ผ์ด๋ ์ธ๋ฑ์ค ์ ๋ณด๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์บ์ํด ๋๋ ๊ณต๊ฐ
- ์ฐ๊ธฐ ์์ ์ ์ง์ฐ์์ผ ์ผ๊ด ์์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๊ฒ ํด์ฃผ๋ ๋ฒํผ ์ญํ ๋ ์ํ
- ์ผ๋ฐ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์
์์๋ ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํ๋ ์ฟผ๋ฆฌ(INSERT, UPDATE, DELETE)๋
๋๋คํ ๋์คํฌ ์์ ์ ๋ฐ์์ํค๋๋ฐ,
InnoDB ๋ฒํผ ํ์ ๋ณ๊ฒฝ๋ ๋ฐ์ดํฐ๋ฅผ ๋ชจ์์ ์ฒ๋ฆฌํ๋ฉด ๋๋คํ ๋์คํฌ ์์ ์ ํ์๋ฅผ ์ค์ฌ ์ฃผ๋ ๊ฒ์ด ๊ฐ๋ฅ
2.7.1 ๋ฒํผ ํ์ ํฌ๊ธฐ ์ค์
- ์ด์์ฒด์ ์ ๊ฐ ํด๋ผ์ด์ธํธ ์ค๋ ๋๊ฐ ์ฌ์ฉํ ๋ฉ๋ชจ๋ฆฌ๋ ์ถฉ๋ถํ ๊ณ ๋ คํด์ ์ค์
MySQL ์๋ฒ ๋ด์์
๋ ์ฝ๋ ๋ฒํผ
๊ฐ ์๋นํ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ :
์ปค๋ฅ์ ์ด ๋ง๊ณ ์ฌ์ฉํ๋ ํ ์ด๋ธ๋ ๋ง๋ค๋ฉด
๋ ์ฝ๋ ๋ฒํผ ์ฉ๋๋ก ์ฌ์ฉ๋๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ๊ฝค ๋ง์ด ํ์ํด์ง ์๋ ์์- ๋ ์ฝ๋ ๋ฒํผ
- ๊ฐ ํด๋ผ์ด์ธํธ ์ธ์ ์์ ํ ์ด๋ธ์ ๋ ์ฝ๋๋ฅผ ์ฝ๊ณ ์ธ ๋ ๋ฒํผ๋ก ์ฌ์ฉํ๋ ๊ณต๊ฐ
- MySQL ์๋ฒ๊ฐ ์ฌ์ฉํ๋ ๋ ์ฝ๋ ๋ฒํผ ๊ณต๊ฐ์ ๋ณ๋๋ก ์ค์ ํ ์ ์์ผ๋ฉฐ,
์ ์ฒด ์ปค๋ฅ์ ๊ฐ์์ ๊ฐ ์ปค๋ฅ์ ์์ ์ฝ๊ณ ์ฐ๋ ํ ์ด๋ธ์ ๊ฐ์์ ๋ฐ๋ผ์ ๊ฒฐ์ ๋จ. - ๋์ ์ผ๋ก ํด์ ๋๊ธฐ๋ํ๋ฏ๋ก ์ ํํ ํ์ํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํฌ๊ธฐ๋ฅผ ๊ณ์ฐํ ์๊ฐ ์์
- MySQL 5.7 ๋ฒ์ ๋ถํฐ๋ InnoDB ๋ฒํผ ํ์ ํฌ๊ธฐ๋ฅผ ๋์ ์ผ๋ก ์กฐ์ ํ ์ ์๊ฒ ๊ฐ์
- ๊ทธ๋์ ๊ฐ๋ฅํ๋ฉด InnoDB ๋ฒํผ ํ์ ํฌ๊ธฐ๋ฅผ ์ ์ ํ ์์ ๊ฐ์ผ๋ก ์ค์ ํด์
์กฐ๊ธ์ฉ ์ํฉ์ ๋ด ๊ฐ๋ฉด์ ์ฆ๊ฐ์ํค๋ ๋ฐฉ๋ฒ์ด ์ต์ ์ ๋ฐฉ๋ฒ
- ๋ ์ฝ๋ ๋ฒํผ
- InnoDB ๋ฒํผํ ํฌ๊ธฐ ๋ณ๊ฒฝ
- innodb_buffer_pool_size :
์์คํ ๋ณ์๋ก ํฌ๊ธฐ๋ฅผ ์ค์ ํ๊ณ , ๋์ ์ผ๋ก ๋ฒํผํ์ ํฌ๊ธฐ๋ฅผ ํ์ฅ - ๊ฐ๋ฅํ๋ฉด MySQL ์๋ฒ๊ฐ ํ๊ฐํ ์์ ์ ๊ณจ๋ผ์ ์งํํ๋ ๊ฒ์ด ์ข์
- InnoDB ๋ฒํผํ์ ๋ ํฌ๊ฒ ๋ณ๊ฒฝํ๋ ์์
์ ์์คํ
์ํฅ๋๊ฐ ํฌ์ง ์์ง๋ง,
๋ฒํผํ์ ํฌ๊ธฐ๋ฅผ ์ค์ด๋ ์์ ์ ์๋น์ค ์ํฅ๋๊ฐ ๋งค์ฐ ํฌ๋ฏ๋ก ๊ฐ๋ฅํ๋ฉด
๋ฒํผํ์ ํฌ๊ธฐ๋ฅผ ์ค์ด๋ ์์ ์ ํ์ง ์๋๋ก ์ฃผ์
- innodb_buffer_pool_size :
- InnoDB ๋ฒํผ ํ์ ์ ํต์ ์ผ๋ก ๋ฒํผ ํ ์ ์ฒด๋ฅผ ๊ด๋ฆฌํ๋ ์ ๊ธ(์ธ๋งํฌ์ด)์ผ๋ก ์ธํด
๋ด๋ถ ์ ๊ธ ๊ฒฝํฉ์ ๋ง์ด ์ ๋ฐํด์๋๋ฐ, ์ด๋ฐ ๊ฒฝํฉ์ ์ค์ด๊ธฐ ์ํด
๋ฒํผ ํ์ ์ฌ๋ฌ๊ฐ๋ก ์ชผ๊ฐ์ด ๊ด๋ฆฌํ ์ ์๊ฒ ๊ฐ์- innodb_buffer_pool_instances :
๋ฒํผํ์ ์ฌ๋ฌ๊ฐ๋ก ๋ถ๋ฆฌํด์ ๊ด๋ฆฌํ ์ ์๋๋ฐ, ๊ฐ ๋ฒํผ ํ์ ๋ฒํผ ํ ์ธ์คํด์ค๋ผ๊ณ ํํ- ๋ฒํผํ ์ธ์คํด์ค์ ๊ฐ์
- ๊ธฐ๋ณธ์ ์ผ๋ก 8๊ฐ๋ก ์ด๊ธฐํ
- ์ ์ฒด ๋ฒํผํ์ ์ํ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ๊ฐ 1GB ๋ฏธ๋ง์ด๋ฉด ๋ฒํผํ ์ธ์คํด์ค๋ 1๊ฐ๋ง ์์ฑ
- ๋ฒํผํ๋ก ํ ๋นํ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด 40GB ์ดํ ์์ค :
๊ธฐ๋ณธ๊ฐ์ธ 8์ ์ ์งํ๋ ๊ฒ์ด ์ข์ - ๋ฒํผํ๋ก ํ ๋นํ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด 40GB ๋ณด๋ค ํฌ๋ค๋ฉด :
๋ฒํผํ ์ธ์คํด์ค๋น 5GB ์ ๋๊ฐ ๋๊ฒ ์ธ์คํด์ค ๊ฐ์๋ฅผ ์ค์ ํ๋ ๊ฒ์ด ์ข์
- ๋ฒํผํ ์ธ์คํด์ค์ ๊ฐ์
- innodb_buffer_pool_instances :
2.7.2 ๋ฒํผ ํ์ ๊ตฌ์กฐ
InnoDB ์คํ ๋ฆฌ์ง ์์ง์
๋ฒํผ ํ์ด๋ผ๋ ๊ฑฐ๋ํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ์ด์ง ํฌ๊ธฐ(innodb_page_size ์์คํ ๋ณ์์ ์ค์ ๋)์ ์กฐ๊ฐ์ผ๋ก ์ชผ๊ฐ
InnoDB ์คํ ๋ฆฌ์ง ์์ง์ด ๋ฐ์ดํฐ๋ฅผ ํ์๋ก ํ ๋ ํด๋น ๋ฐ์ดํฐ ํ์ด์ง๋ฅผ ์ฝ์ด์ ๊ฐ ์กฐ๊ฐ์ ์ ์ฅ๋ฒํผํ์ ํ์ด์ง ํฌ๊ธฐ ์กฐ๊ฐ์ ๊ด๋ฆฌํ๊ธฐ ์ํด InnoDB ์คํ ๋ฆฌ์ง ์์ง์ 3๊ฐ์ ์๋ฃ ๊ตฌ์กฐ๋ฅผ ๊ด๋ฆฌ
- ํ๋ฆฌ(Free) ๋ฆฌ์คํธ
- LRU(Least Recently Used) ๋ฆฌ์คํธ
- ํ๋ฌ์(Flush) ๋ฆฌ์คํธ
(1) ํ๋ฆฌ(Free) ๋ฆฌ์คํธ
- InnoDB ๋ฒํผํ์์ ์ค์ ์ฌ์ฉ์ ๋ฐ์ดํฐ๋ก ์ฑ์์ง์ง ์์ ๋น์ด ์๋ ํ์ด์ง๋ค์ ๋ชฉ๋ก
- ์ฌ์ฉ์์ ์ฟผ๋ฆฌ๊ฐ ์๋กญ๊ฒ ๋์คํฌ์ ๋ฐ์ดํฐ ํ์ด์ง๋ฅผ ์ฝ์ด์์ผ ํ๋ ๊ฒฝ์ฐ ์ฌ์ฉ๋จ
(2) LRU(Least Recently Used) ๋ฆฌ์คํธ
- LRU(Least Recently Used) : Old ์๋ธ๋ฆฌ์คํธ ์์ญ
- MRU(Most Recently Used) : New ์๋ธ๋ฆฌ์คํธ ์์ญ
- LRU ๋ฆฌ์คํธ๋ฅผ ๊ด๋ฆฌํ๋ ๋ชฉ์
- ๋์คํฌ๋ก๋ถํฐ ํ ๋ฒ ์ฝ์ด์จ ํ์ด์ง๋ฅผ
์ต๋ํ ์ค๋ซ๋์ InnoDB ๋ฒํผํ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์งํด์ ๋์คํฌ ์ฝ๊ธฐ๋ฅผ ์ต์ํ
- ๋์คํฌ๋ก๋ถํฐ ํ ๋ฒ ์ฝ์ด์จ ํ์ด์ง๋ฅผ
InnoDB ์คํ ๋ฆฌ์ง ์์ง์์ ๋ฐ์ดํฐ๋ฅผ ์ฐพ๋ ๊ณผ์
- ํ์ํ ๋ ์ฝ๋๊ฐ ์ ์ฅ๋ ๋ฐ์ดํฐ ํ์ด์ง๊ฐ ๋ฒํผ ํ์ ์๋์ง ๊ฒ์ฌ
- InnoDB ์ด๋ํฐ๋ธ ํด์ ์ธ๋ฑ์ค๋ฅผ ์ด์ฉํด ํ์ด์ง๋ฅผ ๊ฒ์
- ํด๋น ํ ์ด๋ธ์ ์ธ๋ฑ์ค(B-Tree)๋ฅผ ์ด์ฉํด ๋ฒํผ ํ์์ ํ์ด์ง๋ฅผ ๊ฒ์
- ๋ฒํผ ํ์ ์ด๋ฏธ ๋ฐ์ดํฐ ํ์ด์ง๊ฐ ์์๋ค๋ฉด ํด๋น ํ์ด์ง์ ํฌ์ธํฐ๋ฅผ MRU ๋ฐฉํฅ์ผ๋ก ์น๊ธ
๋์คํฌ์์ ํ์ํ ๋ฐ์ดํฐ ํ์ด์ง๋ฅผ ๋ฒํผ ํ์ ์ ์ฌํ๊ณ ,
์ ์ฌ๋ ํ์ด์ง์ ๋ํ ํฌ์ธํฐ๋ฅผ LRU ํค๋ ๋ถ๋ถ์ ์ถ๊ฐ๋ฒํผํ์ LRU ํค๋ ๋ถ๋ถ์ ์ ์ฌ๋ ๋ฐ์ดํฐ ํ์ด์ง๊ฐ ์ค์ ๋ก ์ฝํ๋ฉด MRU ํค๋ ๋ถ๋ถ์ผ๋ก ์ด๋
(Read Ahead์ ๊ฐ์ด ๋๋ ์ฝ๊ธฐ์ ๊ฒฝ์ฐ ๋์คํฌ์ ๋ฐ์ดํฐ ํ์ด์ง๊ฐ ๋ฒํผ ํ๋ก ์ ์ฌ๋ ๋์ง๋ง
์ค์ ์ฟผ๋ฆฌ์์ ์ฌ์ฉ๋์ง๋ ์์ ์๋ ์์ผ๋ฉฐ, ์ด๋ฐ ๊ฒฝ์ฐ์๋ MRU๋ก ์ด๋๋์ง ์์)- ๋ฒํผํ์ ์์ฃผํ๋ ๋ฐ์ดํฐ ํ์ด์ง๋ ์ฌ์ฉ์ ์ฟผ๋ฆฌ๊ฐ ์ผ๋ง๋ ์ต๊ทผ์ ์ ๊ทผํ์๋์ง์ ๋ฐ๋ผ ๋์ด(Age) ๋ถ์ฌ,
๋ฒํผํ์ ์์ฃผํ๋ ๋์ ์ฟผ๋ฆฌ์์ ์ค๋ซ๋์ ์ฌ์ฉ๋์ง ์์ผ๋ฉด
๋ฐ์ดํฐ ํ์ด์ง์ ๋ถ์ฌ๋ ๋์ด๊ฐ ์ค๋๋๊ณ (โAgingโ์ด๋ผ๊ณ ํจ) ๊ฒฐ๊ตญ ํด๋น ํ์ด์ง๋ ๋ฒํผ ํ์์ ์ ๊ฑฐ๋จ.- ๋ฒํผ ํ์ ๋ฐ์ดํฐ ํ์ด์ง๊ฐ ์ฟผ๋ฆฌ์ ์ํด ์ฌ์ฉ๋๋ฉด ๋์ด๊ฐ ์ด๊ธฐํ๋์ด ๋ค์ ์ ์ด์ง๊ณ MRU์ ํค๋ ๋ถ๋ถ์ผ๋ก ์ฎ๊ฒจ์ง.
- Eviction : ๋ฒํผ ํ์์ ๋ฐ์ดํฐ ํ์ด์ง๋ฅผ ์ญ์ ํด ์ถ๊ฐ ๊ณต๊ฐ์ ํ๋ณดํ๋ ์์
- ํ์ํ ๋ฐ์ดํฐ๊ฐ ์์ฃผ ์ ๊ทผ๋๋ค๋ฉด ํด๋น ํ์ด์ง์ ์ธ๋ฑ์ค ํค๋ฅผ ์ด๋ํฐ๋ธ ํด์ ์ธ๋ฑ์ค์ ์ถ๊ฐ
โก๏ธ ์ฒ์ ํ ๋ฒ ์ฝํ ๋ฐ์ดํฐ ํ์ด์ง๊ฐ ์ดํ
- ์์ฃผ ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ :
๊ทธ ๋ฐ์ดํฐ ํ์ด์ง๋ InnoDB ๋ฒํผํ์ MRU ์์ญ์์ ๊ณ์ ์กด์ฌ - ๊ฑฐ์ ์ฌ์ฉ๋์ง ์๋ ๊ฒฝ์ฐ :
์๋กญ๊ฒ ๋์คํฌ์์ ์ฝํ๋ ๋ฐ์ดํฐ ํ์ด์ง๋ค์ ๋ฐ๋ ค์ LRU์ ๋์ผ๋ก InnoDB ๋ฒํผ ํ์์ ์ ๊ฑฐ
(3) ํ๋ฌ์(Flush) ๋ฆฌ์คํธ
- ๋์คํฌ๋ก ๋๊ธฐํ๋์ง ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง ๋ฐ์ดํฐ ํ์ด์ง(๋ํฐ ํ์ด์ง)์ ๋ณ๊ฒฝ ์์ ๊ธฐ์ค์ ํ์ด์ง ๋ชฉ๋ก์ ๊ด๋ฆฌ
- ์ผ๋จ ํ ๋ฒ ๋ฐ์ดํฐ ๋ณ๊ฒฝ์ด ๊ฐํด์ง ๋ฐ์ดํฐ ํ์ด์ง๋ ํ๋ฌ์ ๋ฆฌ์คํธ์ ๊ด๋ฆฌ๋๊ณ ํน์ ์์ ์ด ๋๋ฉด ๋์คํฌ๋ก ๊ธฐ๋ก๋์ผ ํจ
- ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋๋ฉด InnoDB๋ ๋ณ๊ฒฝ ๋ด์ฉ์ ๋ฆฌ๋ ๋ก๊ทธ์ ๊ธฐ๋กํ๋ฉด
- ๋ฒํผํ์ ๋ฐ์ดํฐ ํ์ด์ง์๋ ๋ณ๊ฒฝ ๋ด์ฉ์ ๋ฐ์
-> ๋ฆฌ๋ ๋ก๊ทธ์ ๊ฐ ์ํธ๋ฆฌ๋ ํน์ ๋ฐ์ดํฐ ํ์ด์ง์ ์ฐ๊ฒฐ - ๋ฒํผํ์ ๋ฐ์ดํฐ ํ์ด์ง์๋ ๋ณ๊ฒฝ ๋ด์ฉ์ ๋ฐ์ํ์ง ์์ ๊ฒฝ์ฐ
- InnoDB ์คํ ๋ฆฌ์ง ์์ง์ ์ฒดํฌํฌ์ธํธ๋ฅผ ๋ฐ์์ํด
-> ๋์คํฌ์ ๋ฆฌ๋ ๋ก๊ทธ์ ๋ฐ์ดํฐ ํ์ด์ง์ ์ํ๋ฅผ ๋๊ธฐํ
- ๋ฒํผํ์ ๋ฐ์ดํฐ ํ์ด์ง์๋ ๋ณ๊ฒฝ ๋ด์ฉ์ ๋ฐ์
โ๏ธ ์ฒดํฌํฌ์ธํธ :
MySQL ์๋ฒ๊ฐ ์์๋ ๋ InnoDB ์คํ ๋ฆฌ์ง ์์ง์ด
๋ฆฌ๋ ๋ก๊ทธ์ ์ด๋ ๋ถ๋ถ๋ถํฐ ๋ณต๊ตฌ๋ฅผ ์คํํด์ผ ํ ์ง ํ๋จํ๋ ๊ธฐ์ค์ ์ ๋ง๋๋ ์ญํ
2.7.3 ๋ฒํผ ํ๊ณผ ๋ฆฌ๋ ๋ก๊ทธ
- InnoDB์ ๋ฒํผํ๊ณผ ๋ฆฌ๋ ๋ก๊ทธ๋ ๋งค์ฐ ๋ฐ์ ํ ๊ด๊ณ
- InnoDB์ ๋ฒํผ ํ์ ์๋ฒ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ์ฉํ๋ ๋งํผ ํฌ๊ฒ ์ค์ ํ๋ฉด ํ ์๋ก ์ฟผ๋ฆฌ์ ์ฑ๋ฅ์ด ๋นจ๋ผ์ง
(์ด๋ฏธ ๋์คํฌ์ ๋ชจ๋ ๋ฐ์ดํฐ ํ์ผ์ด ๋ฒํผ ํ์ ์ ์ฌ๋ ์ ๋์ ๋ฒํผ ํ ๊ณต๊ฐ์ด ์๋ ๊ฒฝ์ฐ)
InnoDB ๋ฒํผํ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ์ ์ฑ๋ฅ ํฅ์์ ์ํ ์ญํ
- ๋ฐ์ดํฐ ์บ์
- ์ฐ๊ธฐ ๋ฒํผ๋ง
- ๋ฐ์ดํฐ ์บ์ ๊ธฐ๋ฅ ํฅ์ :
๋ฒํผํ์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ๋ง ๋จ์ํ ๋๋ฆฌ๋ ๊ฒ์ ๋ฐ์ดํฐ ์บ์ ๊ธฐ๋ฅ๋ง ํฅ์ - ๋ฐ์ดํฐ ์บ์ ๊ธฐ๋ฅ ํฅ์ + ์ฐ๊ธฐ ๋ฒํผ๋ง ๊ธฐ๋ฅ ํฅ์ : โฆ?
๋ฒํผํ
- ํด๋ฆฐ ํ์ด์ง(Clean Page) : ๋์คํฌ์์ ์ฝ์ ์ํ๋ก ์ ํ ๋ณ๊ฒฝ๋์ง ์์ ํ์ด์ง
- ๋ํฐ ํ์ด์ง(Dirty Page) : INSERT, UPDATE, DELETE ๋ช ๋ น์ผ๋ก ๋ณ๊ฒฝ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง ํ์ด์ง
๋ํฐ ํ์ด์ง
- ๋์คํฌ์ ๋ฉ๋ชจ๋ฆฌ(๋ฒํผ ํ)์ ๋ฐ์ดํฐ ์ํ๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ์ธ์ ๊ฐ๋ ๋์คํฌ๋ก ๊ธฐ๋ก
- ๋ฒํผ ํ์ ๋ฌดํ์ ๋จธ๋ฌด๋ฅผ ์ ์๋ ๊ฒ์ ์๋
๋ฆฌ๋๋ก๊ทธ
- InnoDB ์คํ ๋ฆฌ์ง ์์ง์์ ๋ฆฌ๋ ๋ก๊ทธ๋ 1๊ฐ ์ด์์ ๊ณ ์ ํฌ๊ธฐ ํ์ผ์ ์ฐ๊ฒฐํด์ ์ํ ๊ณ ๋ฆฌ์ฒ๋ผ ์ฌ์ฉ๋จ
- ๋ฐ์ดํฐ ๋ณ๊ฒฝ์ด ๊ณ์ ๋ฐ์ํ๋ฉด ๋ฆฌ๋ ๋ก๊ทธ ํ์ผ์ ๊ธฐ๋ก๋๋ ๋ก๊ทธ ์ํธ๋ฆฌ๋
์ด๋ ์๊ฐ ๋ค์ ์๋ก์ด ๋ก๊ทธ ์ํธ๋ฆฌ๋ก ๋ฎ์ด ์ฐ์
- InnoDB ์คํ ๋ฆฌ์ง ์์ง์
์ ์ฒด ๋ฆฌ๋ ๋ก๊ทธ ํ์ผ์์ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ๊ณต๊ฐ๊ณผ ๋น์ฅ ์ฌ์ฌ์ฉ ๋ถ๊ฐ๋ฅํ ๊ณต๊ฐ์ ๊ตฌ๋ถํด์ ๊ด๋ฆฌ
redo log ์ํ
- current
- ํ์ฌ ์ฌ์ฉ ์ค
- ํ์ฌ LGWR์ด ๋ด์ฉ์ ๊ธฐ๋กํ๊ณ ์๋ ์ํ
- active
- ํ์ฉ ๋ถ๊ฐ๋ฅํ ์ํ
- ์์ง DB Buffer Cache ์์ Data File๋ก ์ ์ฅ์ด ์ ๋ ์ํ
- inactive
- ํ์ฉ ๊ฐ๋ฅํ ์ํ
- Data File์ ์ ์ฅ ์์ ๊น์ง ๋๋ Redo Log
- Redo Log File์ ์ญ์ ํ๊ณ ์ถ๋ค๋ฉด INACTIVE ์ํ๋ก ๋ง๋ค๊ณ ์ํํด์ผ ํจ
- unused
- ํ๋ฒ๋ ์ฌ์ฉํ ์ ์ด ์๋ ์ํ
- LSN(Log Sequence Number) :
๋งค๋ฒ ๊ธฐ๋ก๋ ๋๋ง๋ค ๋ก๊ทธ ํฌ์ง์ ์ ๊ณ์ ์ฆ๊ฐ๋ ๊ฐ์ ๊ฐ์
(๋ฆฌ๋ ๋ก๊ทธ ํ์ผ์ ๊ณต๊ฐ์ ๊ณ์ ์ํ๋์ด ์ฌ์ฌ์ฉ)
2.7.4 ๋ฒํผ ํ ํ๋ฌ์(Buffer Pool Flush)
2.7.4.1 ํ๋ฌ์ ๋ฆฌ์คํธ ํ๋ฌ์
2.7.4.2 LRU ๋ฆฌ์คํธ ํ๋ฌ์
2.7.5 ๋ฒํผ ํ ์ํ ๋ฐฑ์ ๋ฐ ๋ณต๊ตฌ
2.7.6 ๋ฒํผ ํ์ ์ ์ฌ ๋ด์ฉ ํ์ธ
2.8 Double Write Buffer
2.9 ์ธ๋ ๋ก๊ทธ
2.9.1 ์ธ๋ ๋ก๊ทธ ๋ ์ฝ๋ ๋ชจ๋ํฐ๋ง
2.9.2 ์ธ๋ ํ ์ด๋ธ์คํ์ด์ค ๊ด๋ฆฌ
(์ฐธ๊ณ )
๊ณต๋ถํ ๋ด์ฉ์ ์ฌ๋ฌ๊ธ๊ณผ ์ฑ
์ฝ์ ๋ด์ฉ์ ๋ฐํ์ผ๋ก ์ ๋ฆฌํ๊ณ ์์ต๋๋ค.
์ข์ ๊ธ๋ก ์ ์ ๊ณต๋ถ์ ๋์์ ์ฃผ์๋ ๋ถ๋ค๊ป ๊ฐ์ฌ๋๋ฆฝ๋๋ค.