๐ซ ์ฐ๊ธฐ์ MySQL ์ํคํ ์ณ
์ฐ๊ธฐ์ MySQL ์ํคํ ์ฒ
[10๋ถ ํ ์ฝํก] ๐ซ ์ฐ๊ธฐ์ MySQL แแ กแแ ตแแ ฆแจแแ ฅ ๋ฅผ ๋ฃ๊ณ ์ ๋ฆฌํจ.
MySQL ์ํคํ ์ณ

MySQL ์ ์ ํด๋ผ์ด์ธํธ
๋๋ถ๋ถ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋ํด ์ ์ API๋ฅผ ์ ๊ณตํ๋ค. ์์์๋ ์ ์คํฌ๋ฆฝํธ๋ฅผ ํตํด MySQ์ ์ด์ฉํ ์ ์๋ฐ.
MySQL ์์ง
- ํด๋ผ์ด์ธํธ ์ ์๊ณผ SQL ์์ง์ ์ฒ๋ฆฌํ๋ค.
- ์ฟผ๋ฆฌํ์, ์ ์ฒ๋ฆฌ๊ธฐ(Preprocessor), ์ตํฐ๋ง์ด์ , ์คํ ์์ง ๋ฑ์ผ๋ก ์ด๋ฃจ์ด์ง๋ค. ์ด์ค ์ตํฐ๋ง์ด์ ๊ฐ ํต์ฌ์ด๋ค.
- ์ตํฐ๋ง์ด์ : ์์ฒญ๋ SQL๋ฌธ์ ์ต์ ํํด์ ์คํ์ํค๊ธฐ์ํด ์คํ๊ณํ์ ์ง๋ ์ค์ํ ์ญํ ์ ํ๋ค.
MySQL ์คํ ๋ฆฌ์ง ์์ง
- ๋ฐ์ดํฐ๋ฅผ ์ค์ ๋ก ๋์คํฌ์ ์ ์ฅํ๊ฑฐ๋ ๋์คํฌ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ค๋ ์ญํ ์ ํ๋ค.
- ์ตํฐ๋ง์ด์ ๊ฐ ์์ฑํ ์คํ ๊ณํ์ ๋ฐ๋ผ์ ์คํ ๋ฆฌ์ง ์์ง์ ์ ์ ํ ํธ์ถํด์ ์ฟผ๋ฆฌ๋ฅผ ์คํํ๋ค.
- MySQL์์ง์ด ์คํ ๋ฆฌ์ง๋ฅผ ํธ์ถํ ๋ ์ฌ์ฉํ๋ API๋ฅผ ํธ๋ค๋ฌ API๋ผ๊ณ ํ๋ค. ํธ๋ค๋ฌ API๋ ์ปค์คํ ๊ตฌํ ๊ฐ๋ฅํ์ฌ ๋๋ง์ ์คํ ๋ฆฌ์ง ์์ง์ ์ค๊ณํ ์๋ ์๋ค.
์ด์์ฒด์ , ํ๋์จ์ด
์ค์ ํ ์ด๋ธ์ ๋ฐ์ดํฐ์ ๋ก๊ทธ ๋ฐ์ดํฐ๋ฅผ ํ์ผ๋ก ์ ์ฅํ๋ ์ด์์ฒด์ ํ์ผ ์์คํ ๊ณผ ํ๋์จ์ด์ด๋ค.
์ฟผ๋ฆฌ์ ์คํ ๊ณผ์

์ฟผ๋ฆฌ ์บ์
- SQL ์คํ ๊ฒฐ๊ณผ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์บ์ฑํ๋ ์ญํ
- ๋์ผ SQL ์คํ ์ ์ด์ ๊ฒฐ๊ณผ ์ฆ์ ๋ฐํ
- ํ ์ด๋ธ์ ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋๋ฉด ์บ์ฑ๋ ๋ฐ์ดํฐ ์ญ์ ํ์(๋์ ์ฒ๋ฆฌ ์ฑ๋ฅ ์ ํ)
- MySQL 8.0๋ถํฐ ์์ ํ ์ ๊ฑฐ๋จ
์ฌ์ฉ์๊ฐ SQL ์์ฒญ์ ๋ ๋ฆฌ๋ฉด ๊ฐ์ฅ ๋จผ์ ๋ง๋๊ฒ ๋๋ ๋ชจ๋๋ก ์ฟผ๋ฆฌ ์์ฒญ ๊ฒฐ๊ณผ๋ฅผ ์บ์ฑํ๋ค. ๋์ผํ ์์ฒญ์ ๋ํ ๊ฒฐ๊ณผ๋ฅผ ๋น ๋ฅด๊ฒ ๋ฐ์ ์ ์์์ผ๋ ์ฌ๋ฌ๊ฐ์ง ๋จ์ ์ด ์กด์ฌํ๋ค. ๋ง์ผ ์บ์ํ๊ณ ์๋ ๋ฐ์ดํฐ์ ํ ์ด๋ธ์ด ๋ณ๊ฒฝ๋๋ค๋ฉด ๋ ์ด์ ์ธ๋ชจ ์์ด์ง๊ฒ๋ ์บ์ฑ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํด์ผํ๋ค. ์ด๋ ๊ฒ ์บ์ฑ ๋ฐ์ดํฐ๊ฐ ์ญ์ ๋ ๋ ๋ง๋ค ์ฟผ๋ฆฌ ์บ์์ ์ ๊ทผํ๋ ์ฐ๋ ๋์ ๋ฝ์ด ๊ฑธ๋ฆฌ๋๋ฐ ์ด๋ ์ฌ๊ฐํ ๋์์ฒ๋ฆฌ ์ฑ๋ฅ ์ ํ๋ฅผ ์ผ๊ธฐํ๋ค.
์ฟผ๋ฆฌ ํ์

- SQL ๋ฌธ์ฅ์ ํ ํฐ์ผ๋ก ์ชผ๊ฐ์ ํธ๋ฆฌ๋ก ๋ง๋ฆ
-
์ด ๊ณผ์ ์์ ์ฟผ๋ฆฌ ๋ฌธ์ฅ์ ๊ธฐ๋ณธ ๋ฌธ๋ฒ ์ค๋ฅ๋ฅผ ์ฒดํฌ
์ฟผ๋ฆฌ ํ์๋ sql ๋ช ๋ น์ syntax ์ค๋ฅ๋ฅผ ๊ฒ์ถํ๋ค ๊ทธ๋ฆฌ๊ณ sql ๋ฌธ์ฅ์ ์๋ฏธ์๋ ๋จ์์ ํ ํฐ์ผ๋ก ์ชผ๊ฐ ๋ค์์ ํธ๋ฆฌ๋ก ๋ง๋ ๋ค. ์ด ํธ๋ฆฌ๋ฅผ parse ํธ๋ฆฌ๋ผ๊ณ ๋ถ๋ฅธ๋ค. MySQL์ ๋ด๋ถ์ ์ผ๋ก ์ด parse ํธ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ฟผ๋ฆฌ๋ฅผ ์คํํ๋ค.
์ ์ฒ๋ฆฌ๊ธฐ
- Parse Tree๋ฅผ ๊ธฐ๋ฐ์ผ๋ก SQL์ ๋ฌธ์ฅ ๊ตฌ์กฐ๋ฅผ ์ฒดํฌ
- Parse Tree์ ํ ํฐ์ด ์ ํจํ์ง ์ฒดํฌ
์ ์ฒ๋ฆฌ๊ธฐ(Preprocessor)๋ ์ฟผ๋ฆฌ ํ์๊ฐ ๋ง๋ Parse Tree๋ฅผ ๊ธฐ๋ฐ์ผ๋ก, ์ฟผ๋ฆฌ ๋ฌธ์ฅ์ ๊ตฌ์กฐ์ ์ธ ๋ฌธ์ ๋ฅผ ๊ฒ์ฌํ๋ค. ํ์ค ํธ๋ฆฌ์ ํ ํฐ์ ํ๋์ฉ ๊ฒ์ฌํ๋ฉด์ ํ ํฐ์ ํด๋นํ๋ ํ ์ด๋ธ ์ด๋ฆ์ด๋ ์นผ๋ผ ๋ฑ์ด ์ค์ ๋ก ์กด์ฌํ๋์ง ์ฒดํฌํ๊ณ ์ ๊ทผ ๊ถํ๋ ์ฒดํฌํ๋ค.
์ตํฐ๋ง์ด์
- SQL ์คํ์ ์ต์ ํํด์ ์คํ ๊ณํ์ ์๋ฆฝ
- ๊ท์น ๊ธฐ๋ฐ ์ต์ ํ
- ์ตํฐ๋ง์ด์ ์ ๋ด์ฅ๋ ์ฐ์ ์์์ ๋ฐ๋ผ ์คํ ๊ณํ ์๋ฆฝ
- ๋น์ฉ ๊ธฐ๋ฐ ์ต์ ํ
- ์์ ์ ๋น์ฉ๊ณผ ๋์ ํ ์ด๋ธ์ ํต๊ณ ์ ๋ณด๋ฅผ ํ์ฉํด์ ์คํ ๊ณํ ์๋ฆฝ
์ฟผ๋ฆฌ ์คํ ๊ณํ์ ๋ง๋ฆ
์ฟผ๋ฆฌ ์คํ ์์ง
- ์ตํฐ๋ง์ด์ ๊ฐ ๋ง๋ ์คํ ๊ณํ๋๋ก ์คํ ๋ฆฌ์ง ์์ง์ ํธ์ถํด์ ๋ ์ฝ๋๋ฅผ ์ฝ๊ณ ์.
์คํ ๋ฆฌ์ง ์์ง
- ์ฟผ๋ฆฌ ์คํ ์์ง์ด ์์ฒญํ๋ ๋๋ก ๋ฐ์ดํฐ๋ฅผ ๋์คํฌ๋ก ์ ์ฅํ๊ณ ์ฝ์
- ํธ๋ค๋ฌ API์ ์ํด ๋์(ํธ๋ค๋ฌ๋ผ๊ณ ๋ ๋ถ๋ฆผ)
-
ํ๋ฌ๊ทธ์ธ ํํ๋ก ์ ๊ณต, ์ฌ์ฉ์๊ฐ ์ํ๋ ๊ฒ์ ์ ํ ๊ฐ๋ฅ
(๋จ์ : ํ๋ฌ๊ทธ์ธ๋ผ๋ฆฌ๋ ์๋ก ํต์ ํ ์ ์๊ณ , ํ๋ฌ๊ทธ์ธ์ MySQL ์๋ฒ์ ๋ณ์๋ ํจ์๋ฅผ ์ง์ ํธ์ถํ๊ธฐ ๋๋ฌธ์ ์บก์ํ๋ฅผ ์๋ฐํ๋ค) โ MySQL 8.0๋ถํฐ๋ ์ปดํฌ๋ํธ ์ด๋ฅผ ๊ฐ์ ํ ์ํคํ ์ณ๋ฅผ ์ ๊ณตํ๋ค.
- ๋ํ์ ์ผ๋ก InnoDb, MyISAM ๋ฑ์ด ์๋ค.
InnoDB ์คํ ๋ฆฌ์ง ์์ง, ํน์ง๋ค

- Primary Key์ ์ํ ํด๋ฌ์คํฐ๋ง
- ํธ๋์ญ์ ์ง์ (MVCC, ๋ฆฌ๋๋ก๊ทธ & ์ธ๋ ๋ก๊ทธ, ๋ ์ฝ๋ ๋จ์ ์ ๊ธ)
- InnoDB ๋ฒํผํ & ์ด๋ํฐ๋ธ ํด์ ์ธ๋ฑ์ค
1. Primary Key ์ ์ํ ํด๋ฌ์คํฐ๋ง

- ๋ ์ฝ๋๋ฅผ PK ์์ผ๋ก ์ ๋ ฌํด์ ์ ์ฅ
- PK ์ธ๋ฑ์ค ์๋ ์์ฑ
PK ๊ธฐ์ค์ผ๋ก ๋ฐ์ดํฐ๋ฅผ โ์ ๋ ฌโ ํ์ฌ ๋ฌถ์ฌ์ ํ ๊ตฐ๋ฐ ์ ์ฅ๋๊ธฐ ๋๋ฌธ์ PK ๊ธฐ๋ฐ ๋ฒ์ ๊ฒ์์ด ๋งค์ฐ ๋น ๋ฅด๋ค.
๋จ์ ์ผ๋ก , ์ฐ๊ธฐ ์ฑ๋ฅ์ ๋งค์ฐ ์ ํ๋๋ค. ์๋ํ๋ฉด ๋ชจ๋ ๋ ์ฝ๋๋ฅผ ์ฌ์ ๋ ฌํ๋ ๋น์ฉ์ด ์๋ฐ๋๊ธฐ ๋๋ฌธ์ด๋ค.
์ผ๋ฐ์ ์ธ ์น ์๋น์ค๋ ์ฐ๊ธฐ๋ณด๋ค ์ฝ๊ธฐ ์์ฒญ์ด ํจ์ฌ ๋ง๊ธฐ ๋๋ฌธ์ ์ฐ๊ธฐ ์ฑ๋ฅ์ ํฌ๊ธฐํ๊ณ ์ฝ๊ธฐ ์ฑ๋ฅ์ ์ป๋ ํด๋ฌ์คํฐ๋ง์ ํ๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์ด๋ค.
์ฐธ๊ณ ๋ก InnoDB์์๋ Pk ๋ฅผ ์ง์ ํ์ง ์์ผ๋ฉด ๋ด๋ถ์ ์ผ๋ก PK๋ฅผ ์๋์์ฑํด์ ํด๋ฌ์คํฐ๋งํ๋ค. ๋ด๋ถ์ ์ผ๋ก ์์ฑ๋ PK ๋ ์ฌ์ฉ์๊ฐ ์ง์ ์ธ ์ ์๋ค. ๋ฐ๋ผ์ InnoDB์์ ํ ์ด๋ธ์ ์ค๊ณํ ๋์๋ PK๋ฅผ ์ง์ ์ค์ ํด์ฃผ๋ ๊ฒ์ด ์ข๋ค.
ํธ๋์ญ์ - MVCC(Multi Version Concurrency Control)
InnoDB๋ ๊ธฐ๋ณธ์ ์ผ๋ก Commit, Rollback ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ฉฐ ์ด์ ๋ํด MVCC๋ผ๋ ๊ธฐ๋ฅ๋ ์ ๊ณตํ๋ค.
InnoDB ๋ฒํผํ : ๋ณ๊ฒฝ๋ ๋ฐ์ดํฐ๋ฅผ ๋์คํฌ์ ๋ฐ์ํ๊ธฐ ์ ๊น์ง ์ ์ ๋ฒํผ๋ง ํ๋ ๊ณต๊ฐ
์ธ๋๋ก๊ทธ : ๋ณ๊ฒฝ๋๊ธฐ ์ด์ ๋ฐ์ดํฐ๋ฅผ ๋ฐฑ์ ํด๋๋ ๊ณต๊ฐ
์์)

๋จผ์ insert query๋ฅผ ๋ ๋ฆฌ๊ณ ์ฟผ๋ฆฌ ์ปค๋ฐ์ ํ ์ํ์ด๋ค.

์ด์ํ์์ ์ ์ฌ์์ ์ทจ๋ฏธ๋ฅผ ์ฝ๋ฉ์ผ๋ก ๋ณ๊ฒฝํ๋ UPDATE query๋ฅผ ๋ ๋ฆฐ๋ค.
๋ฒํผ ํ์ ์๋ ์ ์ฌ์ ๋ ์ฝ๋์ ์ทจ๋ฏธ๋ ๊ทธ ์ฆ์ ์ฝ๋ฉ์ผ๋ก ๋ณ๊ฒฝ๋จ๊ณผ ๋์์ ๋ณ๊ฒฝ ์ด์ ์ทจ๋ฏธ์ธ ๋ ์๊ฐ ์ธ๋๋ก๊ทธ์ ๋ณต์ฌ๋๋ค.

์ด ์ํ์์ ์ ์ฌ์์ ์กฐํํ๋ฉด ์ทจ๋ฏธ ์นผ๋ผ์ ๋ฌด์จ ๊ฐ์ ๋ฐํํ ๊น??
โ ์ ๋ด์ ๋๋น์ ์ค์ ๋ ํธ๋์ญ์ ๊ฒฉ๋ฆฌ ์์ค์ ๋ฐ๋ผ ๋ค๋ฅด๋ค ์ด๋ค.
ํธ๋์ญ์ ๊ฒฉ๋ฆฌ ์์ค์ด ๋ง์ผ READ_UNCOMMITED ๋ผ๋ฉด ์ทจ๋ฏธ๊ฐ ์ฝ๋ฉ์ธ ์ ์ฌ์ ๋ ์ฝ๋๊ฐ ๋ฒํผํ์์ ์กฐํ๋๋ค. ๋ง์ฝ ํธ๋์ญ์ ๊ฒฉ๋ฆฌ ์์ค์ด READ_COMMITED, ๋๋ REPEATABLE_READ ๋๋ SERIALIZABLE์ด๋ผ๋ฉด ์ธ๋ ๋ก๊ทธ์ ์๋ ๋ณ๊ฒฝ๋๊ธฐ ์ด์ ๋ฐ์ดํฐ์ธ ์ทจ๋ฏธ๊ฐ ๋ ์์ธ ์ ์ฌ์ ๋ ์ฝ๋๋ฅผ ์กฐํํ๋ค.
์ด๊ฒ์ด MVCC multi version concurrency control์ด๋ค. ์์์์๋ ๋ค์ํ ๋ฒ์ ์ด(์ฝ๋ฉ, ๋ ์)๊ฐ ๋ฒํผํ๊ณผ ์ธ๋๋ก๊ทธ์์ ๋์์ ํธ๋์ญ์ ๊ฒฉ๋ฆฌ ๋ ๋ฒจ์ ๋ฐ๋ผ ๊ด๋ฆฌ๋๊ณ ์๋ค.
์ด ๊ธฐ๋ฅ ๋์ ๋ ์ฝ๋์ ์ ๊ธ์ ๊ฑธ์ง ์๊ณ ๋ ํธ๋์ญ์ ๊ฒฉ๋ฆฌ ๋ ๋ฒจ์ ๋ฐ๋ผ ์ผ๊ด๋ ์ฝ๊ธฐ๋ฅผ ํ ์ ์๋ค
ํธ๋์ญ์ - ์ธ๋ ๋ก๊ทธ์ ๋ฆฌ๋ ๋ก๊ทธ

์ธ๋๋ก๊ทธ์๋ ๋ณ๊ฒฝ๋๊ธฐ ์ด์ ๋ฐ์ดํฐ๋ฅผ ๋ฐฑ์ ํด์ ํธ๋์ญ์ ์ ๋ณด์ฅํ๋ค.
์๋ฅผ ๋ค์ด ๋กค๋ฐฑ์ ํ๋ค๋ฉด ์ธ๋๋ก๊ทธ์ ๋ฐฑ์ ๋ ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋๋ก ๋ณต์ํ๋ฉด ๋๋ค.
ํธ๋์ญ์ ๊ฒฉ๋ฆฌ์์ค๋ ๋ณด์ฅํ๋ค.(์์์์์ฒ๋ผ)
๋ฆฌ๋ ๋ก๊ทธ๋ ํธ๋์ญ์ ์ ์์์ฑ์ ๋ณด์ฅํด ์ค๋ค. ๋ฆฌ๋๋ก๊ทธ์๋ ๋ณ๊ฒฝ๋์๊ณ ์ปค๋ฐ์ด ์๋ฃ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐฑ์ ํ๋ค. ํ๋์จ์ด ๋๋ ์ํํธ์จ์ด ๋ฌธ์ ๋ก MySQL์ด ๋น์ ์์ ์ผ๋ก ์ข ๋ฃ๋๋ฉด ๋ฆฌ๋ ๋ก๊ทธ๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ๋ณต์ํ๋ค.
ํธ๋์ญ์ - ๋ ์ฝ๋ ๋จ์ ์ ๊ธ
๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํ ๋์๋ ๋์์ฑ ๋ฌธ์ ๋ฅผ ๊ณ ๋ คํด์ ๋ ์ฝ๋์ ๋ํ ์ ๊ทผ์ ๋ง๋๋ค(๋ฝ, ์ ๊ธ).
์ด๋ ธ๋๋น๋ ๋ ์ฝ๋ ๋จ์๋ก ์ ๊ธ์ ์ํํ๊ธฐ๋๋ฌธ์ ๋์์ฒ๋ฆฌ ์ฑ๋ฅ์ด ์ข๋ค
โ์ค์ ๋ก๋ ๋ ์ฝ๋ ๊ทธ ์์ฒด๋ฅผ ์ ๊ทธ๋ ๊ฒ์ด ์๋๋ผ, ์ธ๋ฑ์ค ๋ ์ฝ๋๋ฅผ ์ ๊ทธ๋ ๊ฒ์ด๋ค.
์์)

๋ฐ๋ณ์ฑ์ ์ทจ๋ฏธ ์นผ๋ผ์ ์ฝ๋ฉ์์ ์ถ๊ตฌ๋ก ๋ฐ๊พธ๋ ์ ๋ฐ์ดํธ ์ฟผ๋ฆฌ๋ฅผ ๋ ๋ฆฌ๋ฉด ์ ๋ฐ์ดํธ๋ฅผ ์ํํ๊ธฐ ์ํด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋จผ์ ๋ฐ๋ณ์ฑ์ ๋ ์ฝ๋๋ฅผ ๊ฒ์ํ๊ฒ ๋๋ค. ์ด๋ ์ฑ์จ ์ธ๋ฑ์ค ์นผ๋ผ์ ์ฌ์ฉํ๊ฒ๋๋ค. ์ด ์ํฉ์์ ์ด๋ ธ๋๋น๋ ๋ ์ฝ๋ ์์ฒด๋ฅผ ์ ๊ทธ๋๊ฒ ์๋๋ผ ์ธ๋ฑ์ค ๋ ์ฝ๋๋ฅผ ์ ๊ทธ๋ ๋ฐฉ์์ผ๋ก ๋ฝ์ ์ฒ๋ฆฌํ๋ค. ๋ค์ ๋งํด, ์ ๋ฐ์ดํธ์ ๋์ ๋ ์ฝ๋๋ฅผ ๊ฒ์ํ ๋ ์ฌ์ฉ๋ ์ธ๋ฑ์ค ๋ ์ฝ๋๊ฐ ์ ๊ธฐ๊ฒ ๋๋ค. ๊ฒ์์ ์ฌ์ฉ๋ ๋ฐ์จ ๋ ์ฝ๋ 300๊ฐ ๊ฐ ๋ชจ๋ ์ ๊ธฐ๊ฒ ๋๋ ๊ฒ์ด๋ค.

๋ง์ผ ์ฑ์จ ์ธ๋ฑ์ค๊ฐ ์๋๋ผ๋ฉด??
๋ฐ๋ณ์ฑ ๋ ์ฝ๋๋ฅผ ์ฐพ์๋ด๊ธฐ ์ํด์ 5000๋ช ํ์์ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ํ์ค์บ ํ๊ฒ ๋๋ค. ์ฆ 5000๊ฐ์ ๋ ์ฝ๋๊ฐ ์ ๋ถ ์ ๊ธฐ๊ฒ ๋๋ ๊ฒ์ด๋ค.
๋ง์ผ ์ฑ์จ์ ์ด๋ฆ ๋ณตํฉ ์ธ๋ฑ์ค๋ฅผ ์์ฑํ๋ค๋ฉด ๋ฐ๋ณ์ฑ ๋ ์ฝ๋ ํ๊ฐ๋ง ์ ๊ทธ๊ฒ ๋์ ๊ฒ์ด๋ค

์ธ๋ฑ์ค๋ฅผ ์ด๋ป๊ฒ ์ค์ ํ๋์ง์ ๋ฐ๋ผ ๋ ์ฝ๋์ ์ ๊ธ ๋ฒ์๊ฐ, ์ฆ ๋์์ฒ๋ฆฌ ์ฑ๋ฅ์ ์ง์ ์ ์ธ ์ํฅ์ด ๊ฐ๋ฏ๋ก ์ด๋ ธ๋๋น๋ฅผ ์ฌ์ฉํ ๋๋ ์ธ๋ฑ์ค๋ฅผ ์ ์คํ๊ฒ ์ค์ ํ๋ ๊ฒ์ด ์ข๋ค
๋ฒํผํ

- ๋์คํฌ์ ๋ฐ์ดํฐ ํ์ผ์ด๋ ์ธ๋ฑ์ค ์ ๋ณด๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์บ์ฑํด๋๋ ๊ณต๊ฐ์ด๋ค.
- ๋ฒํผํ์ ์ฐ๊ธฐ ์์ ์ ์ง์ฐ์์ผ์ ์ผ๊ด์ ์ผ๋ก ์์ ์ ์ฒ๋ฆฌํด์ฃผ๊ธฐ๋ ํ๋ค.
๋ฐ์ดํฐ ์บ์ฑ
- ๋ฒํผํ์ sql ์์ฒญ์ ๊ฒฐ๊ณผ๋ฅผ ์ผ์ ํ ํฌ๊ธฐ์ ํ์ด์ง ๋จ์๋ก ์บ์ฑํ๋ค.
- ์ด์์ฒด์ ๊ฐ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ๊ธฐ์ํด ํ์ด์ง์ ํ๋ ๊ฒ ์ฒ๋ผ ๋ฐ์ดํฐ ๋ฒ ์ด์ค๋ ํ ์ด๋ธ ๋ฐ์ดํฐ์ ๋ํด ํ์ด์ง์ ํ๋ค. โ ์ด๋ ธ๋๋น๋ ํ์ด์ง ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ์ผ๋ก LRU ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๊ณ ์๋ค.
์ฐ๊ธฐ ์ง์ฐ ๋ฒํผ
- ๋ฒํผํ์ ์ฐ๊ธฐ ์ง์ฐ ๋ฒํผ๋ก๋ ์ฌ์ฉ๋๋ค. Insert Update Delete ๋ช ๋ น์ผ๋ก ๋ณ๊ฒฝ๋ ํ์ด์ง๋ฅผ ๋ํฐ ํ์ด์ง๋ผ๊ณ ๋ถ๋ฅธ๋ค. ์ด๋ ธ๋๋น๋ ๋ํฐ ํ์ด์ง๋ค์ ๋ชจ์๋ค๊ฐ ์ฃผ๊ธฐ์ ์ผ๋ก ์ด๋ฒคํธ๋ฅผ ๋ฐ์์์ผ์ ํ๋ฒ์ ๋์คํฌ์ ๋ฐ์ํ๋ค.
- ๋ณ๊ฒฝ๋ ๋ฐ์ดํฐ๋ฅผ ํ๋ฒ์ ๋ชจ์๋ค๊ฐ ์ฒ๋ฆฌํ๋ ์ด์ ๋ ๋๋ค I/O๋ฅผ ์ค์ด๊ธฐ ์ํด์๋ค.
- JPA ์์ ์ปจํ ์คํธ์ ์ฐ๊ธฐ ์ง์ฐ SQL ์ ์ฅ์๋ ๋น์ท
์ด๋ํฐ๋ธ ํด์ ์ธ๋ฑ์ค
- ์ธ๋ฑ์ค ํค์ ํ์ด์ง์ ์ฃผ์๊ฐ ์์ผ๋ก ๊ตฌ์ฑ๋ ์ธ๋ฑ์ค์ด๋ค. ํ์ด์ง์ ๋น ๋ฅด๊ฒ ์ ๊ทผํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค.
- ์ฌ์ฉ์๊ฐ ์์ฃผ ์์ฒญํ๋ ๋ฐ์ดํฐ์ ๋ํด์ ์ด๋ ธ๋๋น๊ฐ ์๋์ผ๋ก ๋ง๋ค์ด์ค๋ค.
- ์ด๋ํฐ๋ธ ํด์ ์ธ๋ฑ์ค๋ฅผ ํตํด ์ํ๋ ํ์ด์ง์ ๋น ๋ฅด๊ฒ ์ ๊ทผํ ์ ์๊ธฐ ๋๋ฌธ์ ์ฟผ๋ฆฌ๋ฅผ ๋๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํ ์ ์๋ค.
๋๊ธ๋จ๊ธฐ๊ธฐ