์ด ๊ธ์ ์์์ผ๋ก ๊ฐ๋จํ ์ฟผ๋ฆฌ ๊ฐ์ ์ค ์๊ฒ ๋ ์ง์๋ค๊ณผ ๊ทธ ๊ณผ์ ์ ์ ์ด๋ณด๊ณ ์ ํ๋ค.
๋จผ์ ์ฟผ๋ฆฌ ๊ฐ์ ์ ์ํด์๋ ํ์ฌ ๋ด๊ฐ ์์ฑํ ์ฟผ๋ฆฌ์ ์ฑ๋ฅ์ ํ ์คํธ ํด๋ด์ผ ํ๋ค.
MySQL์๋ฒ์์ ์ง์ ํ ์คํธ๋ฅผ ์งํํ์ ๋ ์ฒซ ์ฟผ๋ฆฌ ์คํ ์๊ฐ๊ณผ ๋ค์ ์ฟผ๋ฆฌ ์คํ์๊ฐ์ ์ฐจ์ด๊ฐ ๋งค์ฐ ํฌ๊ณ ๊ทธ ์ดํ์ ์ฟผ๋ฆฌ ์คํ์๊ฐ๋ค๋ ์ ๊ฐ๊ฐ์ด๋ผ๋ ๊ฒ์ ํ์ธํ๋ค. ์ด์ ์ฑ๋ฅ ํ ์คํธ์ ์ผ๊ด์ฑ์ ์ ์งํ๊ธฐ ์ํด ์ค์ ์ฟผ๋ฆฌ๊ฐ ์คํ๋ ๋ ๊ฑฐ์น๋ ๊ณผ์ ๋ค์ ํ์ตํ๋ฉด์ ๋ณ์๋ค์ ์ต์ํํ๊ณ ์ ํ๋ค.
โ๏ธ ์ฟผ๋ฆฌ์ ์ฑ๋ฅ์ ์ํฅ์ ๋ฏธ์น๋ ์์
1๏ธโฃ ์ด์์ฒด์ ์ ์บ์
MySQL ์๋ฒ๋ ์์คํ ์ฝ์ ์ด์ฉํด ๋ฐ์ดํฐ ํ์ผ์ ์ฝ์ด์จ๋ค. ๊ทธ๋ฐ๋ฐ ์ผ๋ฐ์ ์ผ๋ก ๋๋ถ๋ถ์ ์ด์์ฒด์ ๋ ํ ๋ฒ ์ฝ์ ๋ฐ์ดํฐ๋ ์ด์์ฒด์ ๊ฐ ๊ด๋ฆฌํ๋ ๋ณ๋์ ์บ์ ์์ญ์ ๋ณด๊ดํด ๋๋ค๊ฐ ๋ค์ ํด๋น ๋ฐ์ดํฐ๊ฐ ์์ฒญ๋๋ฉด ๋์คํฌ๋ฅผ ์ฝ์ง ์๊ณ ์บ์์ ๋ด์ฉ์ ๋ฐ๋ก MySQL ์๋ฒ๋ก ๋ฐํํ๋ค.
InnoDB ์คํ ๋ฆฌ์ง ์์ง์ ์์ฒด์ ์ธ ๋ฒํผ ํ์ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ ์ผ๋ฐ์ ์ผ๋ก ํ์ผ ์์คํ ์ ์บ์๋ ๋ฒํผ๋ฅผ ๊ฑฐ์น์ง ์๋ Direct I/O๋ฅผ ์ฌ์ฉํ๊ณ ์ด์์ฒด์ ์ ์บ์๊ฐ ํฐ ์ํฅ์ ๋ฏธ์น์ง ์๋๋ค. ํ์ง๋ง MyISAM ์คํ ๋ฆฌ์ง ์์ง์ ์ด์์ฒด์ ์ ์บ์์ ๋ํ ์์กด๋๊ฐ ๋๊ธฐ ๋๋ฌธ์ ์ด์์ฒด์ ์ ์บ์์ ๋ฐ๋ผ ์ฑ๋ฅ ์ฐจ์ด๊ฐ ํฐ ํธ์ด๋ค.
์ด์์ฒด์ ์ ํฌํจ๋ ์บ์๋ ๋ฒํผ๋ ํ๋ก๊ทธ๋จ ๋จ์๋ก ๊ด๋ฆฌ๋๊ธฐ ๋๋ฌธ์ MySQL ์๋ฒ๊ฐ ์ข ๋ฃ๋๋ฉด ํด๋น ํ๋ก๊ทธ๋จ์ ์ํ ์บ์๋ ์๋์ ์ผ๋ก ํด์ ๋๋ค.
์ด์์ฒด์ ๊ฐ ๊ฐ์ง๊ณ ์๋ ์บ์๋ ๋ฒํผ๊ฐ ์ ํ ์๋ ์ํ์์ ์ฟผ๋ฆฌ์ ์ฑ๋ฅ์ ํ ์คํธํ๋ ค๋ฉด MySQL ์๋ฒ๋ฅผ ์ฌ์์ํ๊ฑฐ๋, ๋ค์๊ณผ ๊ฐ์ด ์บ์ ์ญ์ ๋ช ๋ น์ ์คํํ๊ณ ํ ์คํธํ๋ ๊ฒ์ด ์ข๋ค.
## ์บ์๋ ๋ฒํผ์ ๋ด์ฉ์ ๋์คํฌ์ ๋๊ธฐํํ๋ค.
shell > sync
## ์ด์์ฒด์ ์ ํฌํจ๋ ์บ์์ ๋ด์ฉ์ ์ด๊ธฐํํ๋ค.
shell > echo 3 > /proc/sys/vm/drop_caches
2๏ธโฃ MySQL ์๋ฒ์ ๋ฒํผ ํ(InnoDB ๋ฒํผ ํ๊ณผ MyISAM์ ํค ์บ์)
์ด์์ฒด์ ์ ๋ฒํผ๋ ์บ์์ ๋ง์ฐฌ๊ฐ์ง๋ก MySQL ์๋ฒ์์๋ ๋ฐ์ดํฐ ํ์ผ์ ๋ด์ฉ์ ํ์ด์ง(๋๋ ๋ธ๋ก) ๋จ์๋ก ์บ์ํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
InnoDB ์คํ ๋ฆฌ์ง ์์ง์ด ๊ด๋ฆฌํ๋ ์บ์๋ฅผ ๋ฒํผ ํ์ด๋ผ๊ณ ํ๋ฉฐ, MyISAM ์คํ ๋ฆฌ์ง ์์ง์ด ๊ด๋ฆฌํ๋ ์บ์๋ ํค ์บ์๋ผ๊ณ ํ๋ค. InnoDB์ ๋ฒํผ ํ์ ์ธ๋ฑ์ค ํ์ด์ง๋ ๋ฌผ๋ก ์ด๊ณ ๋ฐ์ดํฐ ํ์ด์ง๊น์ง ์บ์ํ๋ฉฐ, ์ฐ๊ธฐ ์์ ์ ์ํ ๋ฒํผ๋ง ์์ ๊น์ง ๊ฒธํด์ ์ฒ๋ฆฌํ๋ค. ์ด์ ๋ฌ๋ฆฌ MyISAM์ ํค ์บ์๋ ์ธ๋ฑ์ค ๋ฐ์ดํฐ์ ๋ํด์๋ง ์บ์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค. ๋ํ MyISAM์ ํค ์บ์๋ ์ฃผ๋ก ์ฝ๊ธฐ๋ฅผ ์ํ ์บ์ ์ญํ ์ ์ํํ๋ฉฐ, ์ ํ์ ์ผ๋ก ์ธ๋ฑ์ค ๋ณ๊ฒฝ๋ง์ ์ํ ๋ฒํผ ์ญํ ์ ์ํํ๋ค. ๊ฒฐ๊ตญ MyISAM ์คํ ๋ฆฌ์ง ์์ง์์๋ ์ธ๋ฑ์ค๋ฅผ ์ ์ธํ ํ ์ด๋ธ ๋ฐ์ดํฐ๋ ๋ชจ๋ ์ด์์ฒด์ ์ ์บ์์ ์์กดํ ์ ๋ฐ์ ์๋ค.
MySQL์ด ํ๋ฒ ๊ฐ๋๋ ์ํ์์๋ InnoDB์ ๋ฒํผ ํ๊ณผ MyISAM์ ํค ์บ์ ํฌ๊ธฐ๋ฅผ ๋ณ๊ฒฝํ๊ฑฐ๋ ๋ด์ฉ์ ๊ฐ์ ๋ก ์ญ์ ํ๋ ๋ช ๋ น์ด ์๋ค. MySQL ์๋ฒ์ ํฌํจ๋ ํค ์บ์๋ ๋ฒํผ ํ์ ์ด๊ธฐํํ๊ธฐ ์ํด์๋ MySQL ์๋ฒ๋ฅผ ์ฌ์์ํด์ผ ํ๋ค.
์ฟผ๋ฆฌ ์บ์๋ฅผ ์ฌ์ฉํ์ง ๋ชปํ๋๋ก ํํธ๋ฅผ ์ฌ์ฉํ ์ฟผ๋ฆฌ๋ผ ํ๋๋ผ๋ ์ฒ์ ์คํํ์ ๋์ ๋ ๋ฒ์งธ ์คํํ์ ๋ ์๋นํ ์ฑ๋ฅ ์ฐจ์ด๊ฐ ๋ฐ์ํ ์๋ ์๋ค. ์ด๋ ๋ฒํผ ํ์ด๋ ํค ์บ์์ ์ํ ์ฑ๋ฅ ์ฐจ์ด๋ค. ์ค์๋น์ค์ ์ฑ๋ฅ์ ์ธก์ ํ ๋๋ ์ฟผ๋ฆฌ๋ ๋ฒํผ ํ์ด๋ ํค ์บ์๊ฐ ์ค๋น๋ ์ํ์์ ์คํ๋๊ธฐ ๋๋ฌธ์ ์ฒ์ ์คํํ์ ๋์ ๊ฒฐ๊ณผ๋ ๋ฒ๋ฆฌ๊ณ ์ฌ๋ฌ ๋ฒ ํ ์คํธํด์ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ์ค์ผ๋ก ํ๋จํ๋ ๊ฒ์ด ์ข๋ค. ํ์ง๋ง ์ด๋ ์๋ฐํ ๋งํ์๋ฉด ์บ์ ์กฐํ ์๋, ์ฆ ๋ฉ๋ชจ๋ฆฌ ์๋๋ฅผ ์ธก์ ํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ฟผ๋ฆฌ ์ฑ๋ฅ ์ธก์ ์ ์ํด์๋ ๋์คํฌ I/O๋ก๋ง ์ฒ๋ฆฌ๋๋ ์ต์ด ์คํ ์ฟผ๋ฆฌ ์๋๋ฅผ ์ธก์ ํด์ผํ๋ค. ๋๋ ์๋๋ฆฌ์ค ํ ์คํธ๋ฅผ ํตํด ๋ฒํผ ํ์ ์๋ก์ด ๋ฐ์ดํฐ๊ฐ ๊ณ์ ์ ์ฌ ํ์ฌ ์บ์ ํํธ๋ฅผ ๋ฐฉ์งํด์ผ ์ฑ๋ฅ ์ธก์ ์ด ๊ฐ๋ฅํ๋ค.
3๏ธโฃ MySQL ์ฟผ๋ฆฌ ์บ์(Deprecated)
์ฟผ๋ฆฌ ์บ์๋ ์ด์ ์ ์คํํ๋ SQL ๋ฌธ์ฅ๊ณผ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์์๋ก ์ ์ฅํด๋๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์๋ฏธํ๋ค. ๋ง์ฝ ์ด๋ค ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ๊ฐ ์ด๋ฏธ ์ฟผ๋ฆฌ ์บ์์ ์์๋ค๋ฉด ๊ทธ ์ฟผ๋ฆฌ๋ ์ ์ฒด ์คํ ๊ณผ์ ์ ๊ฑด๋๋ฐ๊ธฐ ๋๋ฌธ์ ์ค์ ๋ถํ์ ๊ด๊ณ์์ด ์์ฃผ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌ๋ ๊ฒ์ด๋ค. ์ฟผ๋ฆฌ ์บ์์์ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ ธ์จ ๊ฒฝ์ฐ์๋ ๋๋ถ๋ถ 0.00์ด ๋ด์ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๊ฐ ๋ฐํ๋๋ค. ์ฟผ๋ฆฌ ์บ์์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ๋น์ฐ๋ ค๋ฉด `RESET QUERY CACHE` ๋ช ๋ น์ ์ด์ฉํ๋ฉด ๋๋๋ฐ, ์ฟผ๋ฆฌ๋ฅผ ํ ์คํธํ ๋๋ง๋ค ์ฟผ๋ฆฌ ์บ์๋ฅผ ๋น์ฐ๊ธฐ๋ ๋ฒ๊ฑฐ๋ก์ด ์ผ์ผ ๊ฒ์ด๋ค. ๊ทธ๋์ SELECT ์ฟผ๋ฆฌ์ SQL_NO_CACHE ํํธ๋ฅผ ์ถ๊ฐํด์ ์ฟผ๋ฆฌ์ ์ฑ๋ฅ์ ํ ์คํธํ๋ ๊ฒ์ด ์ข๋ค.
ํ์ง๋ง ํ์ฌ ์๋์ ๊ฐ์ ์ด์ ๋ก ์ฟผ๋ฆฌ ์บ์๋ Deprecate๋์๋ค.
MySQL ์์ง์ธ InnoDB์ ์ฟผ๋ฆฌ ์บ์ ๋ฌดํจํ ์ฌ์ด์ ์ค๋ฒํค๋๊ฐ ๋๋ฌด ํฌ๋ค.๊ฒฐ์ ์ ์ผ๋ก ํ ์ด๋ธ์ ๋จ ํ๋ฒ์ DML์๋ ์ฐธ์กฐ๋ ๋ชจ๋ ์์ญ์ ๋ฌดํจํ๊ฐ ์ผ์ด๋๋๋ฐ, ์ด ๋ ๋ชจ๋ ์บ์์์ ์ฐธ์กฐ๋ฅผ ์ฐพ๋๋ค.
์ฌ๋ฌ ORM์์ ์ค์ํ ์ฑ๋ฅ์ ์ฟผ๋ฆฌ๋ฅผ ์ ๊ณตํ๋ค. ๋ฌผ๋ก ๊ฐ๊ฐ ์ฐจ์ด๋ ์๊ฒ ์ง๋ง, ์ฌ์ฉ๋๊ณ ์๋ ORM๋ค์์ ์ฟผ๋ฆฌ์ ๋ํ ์บ์ฑ์ ์ ๊ณตํ๊ณ ์บ์ฑ์ ๋ํ ๊ด๋ฆฌ ๋ํ DB๋ณด๋จ ๋ถ๋ด์ด ๋ํ๋ค๋ ์๊ฒฌ์ ๋๋ค. ๋ํ ๋ณ๋์ ์บ์ฑ์ ์ํ DB๋ค(Redis ๋ฑ) ๋ํ ์ ๊ณต๋๊ณ ์๊ธฐ ๋๋ฌธ์ ์ฟผ๋ฆฌ ์บ์๋ฅผ ๊ฐ์ ํ๊ธฐ๋ณด๋ค MySQL ์์ฒด์ ์ฑ๋ฅ ํฅ์์ ์ง์คํ๊ฒ ๋ค๋ MySQL ์๋ฒ ํ์ ๊ธ์ด ์์์ต๋๋ค.
โ๏ธ ์ ๋ฆฌ
์ค์ ์ฟผ๋ฆฌ์ ์ฑ๋ฅ ํ ์คํธ๋ฅผ MySQL ์๋ฒ์ ์ํ๊ฐ ์๋ฐ์ ๋ ์ํ(์์์ ์ธ๊ธํ ์บ์๋ ๋ฒํผ๊ฐ ํ์ํ ๋ฐ์ดํฐ๋ก ์ค๋น๋ ์ํ)์์ ์งํํ ์ง ์๋๋ฉด ์ฝ๋ ์ํ(์บ์๋ ๋ฒํผ๊ฐ ๋ชจ๋ ์ด๊ธฐํ๋ ์ํ)์์ ์งํํ ์ง ๊ณ ๋ คํด์ผ ํ๋ค.
์ผ๋ฐ์ ์ผ๋ก ์ฟผ๋ฆฌ์ ์ฑ๋ฅ ํ ์คํธ๋ ์ฝ๋ ์ํ๊ฐ ์๋ ์๋ฐ์ ๋ ์ํ๋ฅผ ๊ฐ์ ํ๊ณ ํ ์คํธํ๋ ํธ์ด๋ค. ์ด๋ ์ ๋ ์ฌ์ฉ๋์ด ์๋ ์๋น์ค๋ผ๋ฉด ์ฝ๋ ์ํ์์ ์๋ฐ์ ์ํ๋ก ์ ํ๋๋ ๋ฐ ๊ทธ๋ค์ง ๋ง์ ์๊ฐ์ด ๊ฑธ๋ฆฌ์ง ์๊ธฐ ๋๋ฌธ์ ์ค์ ์๋น์ค ํ๊ฒฝ์ ์ฟผ๋ฆฌ๋ ๋๋ถ๋ถ ์ฝ๋ ์ํ๋ณด๋ค๋ ์๋ฐ์ ์ํ์์ ์คํ๋๋ค๊ณ ๋ณผ ์ ์๋ค.
์ค์ ์๋น์ค์ฉ MySQL ์๋ฒ์์๋ ํ์ฌ ํ ์คํธ ์ค์ธ ์ฟผ๋ฆฌ๋ง ์คํ๋๋ ๊ฒ์ด ์๋๋ผ ๋์์ ์ฌ๋ฌ๊ฐ์ ์ฟผ๋ฆฌ๊ฐ ์คํ ์ค์ธ ์ํ์ผ ๊ฒ์ด๋ค. ๊ฐ ์ฟผ๋ฆฌ๊ฐ ์์์ ์ ์ ํ๊ธฐ ์ํ ๊ฒฝํฉ ๋ฑ์ด ๋ฐ์ํ๋ฏ๋ก ํญ์ ํ ์คํธ๋ณด๋ค๋ ๋๋ฆฐ ์ฒ๋ฆฌ ์ฑ๋ฅ์ ๋ณด์ด๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด๋ค.