๐ฆค MySQL ์ฌํ โ - ์ฟผ๋ฆฌ ์๋ต ์๊ฐ
๐
ใMYSQL์ ๋ ๋น ๋ฅด๊ฒ, ์ฑ๋ฅ ์ต์ ํ ์ ํ๊ณผ ์ง์คใ
์ ์ฝ๊ณ ์ ๋ฆฌํ ๊ธ์ ๋๋ค.
๊ฐ์
โ์ฑ๋ฅ์ ๊ณง ์ฟผ๋ฆฌ ์๋ต ์๊ฐ์ด๋ค.โ
- ์ด ์ฑ
์ ๋ชฉ์ ์
MySQL
์ฑ๋ฅ์ ํ์ ํ๊ฒ ๊ฐ์ ํ๋ ๊ฒ์ด๋ค. MySQL
์ฑ๋ฅ ์์๋ ์ฌ๋ฌ ๊ฐ์ง๊ฐ ์กด์ฌํ๋ฉฐ, ๊ทธ์ค ์ฟผ๋ฆฌ ์๋ต ์๊ฐ์ ๋จผ์ ์ดํด๋ณผ ๊ฒ์ด๋ค.
์ฟผ๋ฆฌ ์๋ต ์๊ฐ์ด๋?
MySQL
์ด ์ฟผ๋ฆฌ๋ฅผ ์คํํ๋ ๋ฐ ์์๋๋ ์๊ฐ์ด๋ค.- ์๋ต ์๊ฐ, ์ฟผ๋ฆฌ ์๊ฐ, ์คํ ์๊ฐ, ์ฟผ๋ฆฌ ์ง์ฐ ์๊ฐ์ด๋ผ๊ณ ๋ ํ๋ค.
MySQL
์ด ์ฟผ๋ฆฌ๋ฅผ ๋ฐ์์ ๋ ์์๋๊ณ , ๊ฒฐ๊ณผ ์ธํธ๋ฅผ ํด๋ผ์ด์ธํธ์ ์ ์กํ ์์ ๊น์ง์ ๊ฒฝ๊ณผ ์๊ฐ์ ์๋ฏธํ๋ค.- ์ฟผ๋ฆฌ ์๋ต ์๊ฐ์ด ์ค๋ฉด ์ฑ๋ฅ์ ํฅ์๋๋ค.
๊ฑฐ์ง ์ฑ๋ฅ์ ๊ดํ ์คํ
- 2004๋
๋ ๋น์์๋
MySQL
์ ๊ดํ ์ฑ ์ด๋, ๋ธ๋ก๊ทธ, ๋๊ตฌ๊ฐ ๊ฑฐ์ ์์๋ค. - ๊ฒฐ๊ณผ์ ์ผ๋ก
MySQL
์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ์ต์ ๊ธฐ์ ์ ๊ณ ๊ฐ์๊ฒ ๋ ๋ง์RAM
์ ํ๋งคํ๋ ๊ฒ ๋ฟ์ด์๋ค. - ์ ์๋ ๋ ๋ง์
RAM
์ ํ๋งคํ๋ ๋์MySQL
์ฑ๋ฅ ๋ฌธ์ ์ ๊ทผ๋ณธ ์์ธ์ ์ฐพ์ ํด๊ฒฐํ๊ณ ์ ๊ธฐ์ ์ ์ธ ์ฌ์ธต ๋ถ์์ ์ํํ๊ธฐ๋ก ๋ง์ ๋จน์ - ๋น์ ๋ฌธ์ ๋ ๋๋์ ๋ฐ์ดํฐ๋ก ์ธํด ๊ฒ์ํ ์๋๊ฐ ๋๋ ค์ง ์ํฉ์ด์์
- ์ ์๋ ์ค์ํ ์ธ๋ฑ์ค๊ฐ ๋๋ฝ๋ ๋จ์ผ ์ฟผ๋ฆฌ๋ฅผ ๋ฐ๊ฒฌํ๊ณ , ์ฟผ๋ฆฌ๋ฅผ ์ ๋๋ก ์ธ๋ฑ์ฑํ์ ์ฑ๋ฅ์ด ํ๊ธฐ์ ์ผ๋ก ํฅ์๋จ.
- ๋ฌผ๋ก ๊ณ ๊ฐ์ ์ถ๊ฐ ๋น์ฉ์ ์ง๋ถํ ํ์๊ฐ ์์ด์ง
- ์ด๋ ๋ฏ, ์ด ์ฑ
์ ๋์ค๋ ๋ชจ๋ฒ ์ฌ๋ก์ ๊ธฐ์ ๋ค๋ก ๊ฝค ๋ง์
MySQL
์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์
ํต์ฌ ์งํ(North Star
)
- ๊ธฐ๋ฅ์ ๋ฐฐํฌํ๊ณ , ์์คํ
๊ณผ์ด์ ํต์ ํ๋ ์ฌ์ด์ ๋๊ฐ
MySQL
์ ์๊ฐ์ ํ ์ ํ ์ ์์๊น? - ๋ ๋ง์
RAM
, ๋ ๋น ๋ฅธCPU
, ๋ ๋์ ์คํ ๋ฆฌ์ง์IOPS
๊ฐ ํ์ํ ๊ฒ์ผ๊น? - ์๋๋ฉด ์ต๊ทผ ์ฝ๋ ๋ณ๊ฒฝ์ผ๋ก ์ธํ ๋ฌธ์ ์ผ๊น?
- ๊ทธ๊ฒ๋ ์๋๋ผ๋ฉด
DBA
๊ฐDB
์ ๋ฌด์ธ๊ฐ ์์ ์ ํ๊ณ ์์ด ์ด๋ฅธ๋ฐ โ์๋๋ฌ์ด ์ด์โ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ณ ์๋ ๊ฒ์ผ๊น? - ์ ๊ท๋ก ๋ฑ๋กํ ์ฑ์ด ํํ์ด ์ข์ ์ฌ์ฉ์๊ฐ ๋ชฐ๋ฆฐ ๊ฒ์ด ์์ธ์ผ๊น?
- ๊ทธ๊ฒ๋ณด๋ค๋, ์ฟผ๋ฆฌ ์๋ต ์๊ฐ์ ์ค์ ํด๊ฒฐ์ฑ ์ผ๋ก ์ด์ด์ง๋ ๋ค์๊ณผ ๊ฐ์ ๊ฐ๋ ฅํ ํน์ฑ์ด ์์ผ๋ฏ๋ก ๊ฐ์ฅ ๋จผ์ ์ดํด๋ณด์์ผ ํ๋ค.
์๋ฏธ ์๋ ๊ฒ
- ๊ฐ๋ น ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋๊ฐ ๋น ๋ฅผ ๋๋ ์๋ฌด๋ ๊ทธ๊ฒ์ ์ดํด๋ณด๊ฑฐ๋ ์๋ฌธ์ ๊ฐ์ง ์๋๋ค.
- ์ฟผ๋ฆฌ ์๋ต ์๊ฐ์ด ์ฐ๋ฆฌ๊ฐ ๊ฒฝํํ๋ ์ ์ผํ ๋ฉํธ๋ฆญ์ด๊ธฐ ๋๋ฌธ์ด๋ค.
- ์ฟผ๋ฆฌ๋ฅผ ์คํํ๋๋ฐ 7.5์ด๊ฐ ๊ฑธ๋ฆฌ๋ฉด ์ฐ๋ฆฌ๋ 7.5์ด์ ์กฐ๊ธํจ์ ๊ฒฝํํ ์ ์๋ค.
- ์ฐ๋ฆฌ์๊ฒ๋ ์๊ฐ์ด ์๋ฏธ ์๋ค.
์คํ ๊ฐ๋ฅํ ๊ฒ
- ์ฝ๋๋ฅผ ๋ด๋นํ๊ณ , ์ฟผ๋ฆฌ ์๋ต ์๊ฐ์ ์ง์ ํ์ธํ ์ ์๋ค๋ฉด ์ฟผ๋ฆฌ๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ค.
- ์ฝ๋๋ฅผ ๋ด๋นํ์ง ์๊ณ , ์ ๊ทผ ๊ถํ์ด ์๋๋ผ๋ ์ฟผ๋ฆฌ ์๋ต ์๊ฐ์ ๊ฐ์ ์ ์ผ๋ก ์ต์ ํ ํ ์ ์๋ค.
- ๊ฒฐ๊ตญ
MySQL
์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ํ๋์จ์ด ๋ฌธ์ ๋ก ๋๋ฆฌ์ง ์๊ณ , ํต์ฌ ์งํ์ธ ์ฟผ๋ฆฌ ์๋ต ์๋ ํฅ์์ ์ง์คํด์ผ ํ๋ค. MySQL
์ด ์์๋๋ฉด ๋จผ์ ์ฟผ๋ฆฌ ๋ฉํธ๋ฆญ์ผ๋กMySQL
์ด ์ํํ๋ ์์ ์ ํ์ธํ๊ณ , ๋๋ฆฐ ์ฟผ๋ฆฌ๋ฅผ ๋ถ์ํ๊ณ ์ต์ ํํ์ฌ ์๋ต ์๊ฐ์ ๋จ์ถํด์ผ ํจ์ผ๋ก์จ ๋ฌธ์ ๋ฅผ ๊ฐ์ ํด๋๊ฐ์ผ ํ๋ค.
์ฟผ๋ฆฌ ๋ณด๊ณ
- ์ฟผ๋ฆฌ ๋ฉํธ๋ฆญ์ ์๋ต ์๊ฐ, ์ ๊ธ ์๊ฐ, ์กฐํ๋ ํ ๋ฑ ์ฟผ๋ฆฌ ์คํ์ ๊ดํ์ฌ ์ค์ํ ํต์ฐฐ๋ ฅ์ ์ ๊ณตํ๋ค.
- ์ฟผ๋ฆฌ ๋ฉํธ๋ฆญ์ ๋ค๋ฅธ ๋ฉํธ๋ฆญ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์์ง๋์ด์๊ฒ ์๋ฏธ ์๋ ๋ฐฉ์์ผ๋ก ์์ง, ์ง๊ณ, ๋ณด๊ณ ๋์ด์ผ ํ๋ ์ ์ ๊ฐ์ด๋ค.
- ์ด ์ ์์๋ ์ฟผ๋ฆฌ ๋ฉํธ๋ฆญ ๋๊ตฌ๊ฐ ์ฟผ๋ฆฌ ๋ฉํธ๋ฆญ์ ์ฟผ๋ฆฌ ๋ณด๊ณ ์๋ก ์ด๋ป๊ฒ ๋ณํํ๋์ง ์ค๋ช ํ๋ค.
- ์ฟผ๋ฆฌ ๋ถ์์ ์ค์ ์ํํ ์์ ์ด๋ค.
- ์ฟผ๋ฆฌ ์คํ์ ์ดํดํ๊ธฐ ์ํ ๋ชฉ์ ์ผ๋ก ๋ณด๊ณ ๋ ์ฟผ๋ฆฌ ๋ฉํธ๋ฆญ๊ณผ ๊ธฐํ ์ ๋ณด๋ฅผ ๋ถ์ํ๊ฒ ๋๋ค.
MySQL
์ฑ๋ฅ์ ๋์ด๊ธฐ ์ํด ์ฟผ๋ฆฌ๋ฅผ ์ต์ ํํ๋ ค๋ฉด ์ฟผ๋ฆฌ ์คํ ๋ฐฉ์์ ์ดํดํด์ผ ํ๊ณ , ์ด๋ฅผ ์ดํดํ๋ ค๋ฉด ์ฟผ๋ฆฌ ๋ณด๊ณ ์์ ๋ฉํ๋ฐ์ดํฐ ๋ฑ ๊ด๋ จ ์ ๋ณด๋ฅผ ์ฌ์ฉํ์ฌ ๋ถ์ํด์ผ ํ๋ค.- ํ์ง๋ง ์ฟผ๋ฆฌ ๋ณด๊ณ ๋ ์ฟผ๋ฆฌ ์คํ์ ๋ํ ์ค์ํ ํต์ฐฐ๋ ฅ์ ์ ๊ณตํ๋ ์ฟผ๋ฆฌ ๋ฉํธ๋ฆญ์ ๋ชจ์์ ๋ํ๋ด๊ธฐ ๋๋ฌธ์ ๋จผ์ ์ฟผ๋ฆฌ ๋ณด๊ณ ๋ฅผ ์ดํดํด์ผ ํ๋ค.
- ๋ค์ 3๊ฐ์ง๋ฅผ ์ดํดํด์ผ ์ฟผ๋ฆฌ ๋ถ์์ ์ ๋๋ก ์ดํดํ ์ ์๋ค.
- ์์ค
- ์ฟผ๋ฆฌ ๋ฉํธ๋ฆญ์ 2๊ฐ์ ์์ค์์ ๋น๋กฏ๋๋ค.
MySQL
๋ฐฐํฌ ๋ฐ ๋ฒ์ ์ ๋ฐ๋ผ ๋ค๋ฅด๋ค.
- ์ง๊ณ
- ์ฟผ๋ฆฌ ๋ฉํธ๋ฆญ์ ์ ๊ทํ๋
SQL
๋ฌธ๋ฒ์ ๊ธฐ์ค์ผ๋ก ๊ทธ๋ฃนํ๋๊ณ ์ง๊ณ๋๋ค.
- ์ฟผ๋ฆฌ ๋ฉํธ๋ฆญ์ ์ ๊ทํ๋
- ๋ณด๊ณ
- ์ฟผ๋ฆฌ ๋ณด๊ณ ์๋ ๊ณ ๊ธ ํ๋กํ์ผ๊ณผ ์ฟผ๋ฆฌ์ ํนํ๋ ๋ณด๊ณ ์๋ก ๊ตฌ์ฑ๋๋ค.
์์ค
- ์ฟผ๋ฆฌ ๋ฉํธ๋ฆญ์ ์ฌ๋ก ์ฟผ๋ฆฌ ๋ก๊ทธ๋ ์ฑ๋ฅ ์คํค๋ง์์ ๋น๋กฏ๋๋ค.
- ์ด๋ฆ์์ ์ ์ ์๋ฏ ์ฌ๋ก ์ฟผ๋ฆฌ ๋ก๊ทธ๋ ๋์คํฌ์ ์๋ ๋ก๊ทธ ํ์ผ์ด๊ณ , ์ฑ๋ฅ ์คํค๋ง๋
performance_schema
์ ๊ฐ์ ์ด๋ฆ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ค. - ๋์คํฌ์ ๋ก๊ทธ ํ์ผ๊ณผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ ์ด๋ธ์ ๋ณธ์ง์ ์ผ๋ก ์์ ํ ๋ค๋ฅด์ง๋ง, ๋ ๋ค ์ฟผ๋ฆฌ ๋ฉํธ๋ฆญ์ ์ ๊ณตํ๋ค.
- ์ฃผ์ ์ฐจ์ด์ ์ ์ผ๋ง๋ ๋ง์ ์ฟผ๋ฆฌ ๋ฉํธ๋ฆญ์ ์ ๊ณตํ๋์ง์ด๋ค.
- ๋ ๋ค ์ฟผ๋ฆฌ ์๋ต ์๊ฐ์ ์ ์ธํ๊ณ 3 ~ 20๊ฐ ์ด์์ ๋ฉํธ๋ฆญ์ ์ ๊ณตํ๋ค.
์ฌ๋ก ์ฟผ๋ฆฌ ๋ก๊ทธ๋ ์ด๋ฆ์๋ ์ญ์ฌ๊ฐ ์๋ค. ์ ๋ถํฐ
MySQL
์N
์ด ์ด์ ์คํ๋๋ ์ฟผ๋ฆฌ๋ง ๊ธฐ๋กํ๊ณ , ์ด๋ ์ต์๊ฐ์ 1์ด์๋ค. ๊ทธ ๋ฏธ๋ง์ผ๋ก ์ํ๋๋ ์ฟผ๋ฆฌ๋ ๊ธฐ๋กํ์ง ์์๋๋ฐ, ๊ทธ ์ด์ ๋ ๋นจ๋๊ธฐ ๋๋ฌธ์ด๋ค. ์ฌ๋ก ์ฟผ๋ฆฌ ๋ก๊ทธ๋ ์ด๋ฆ ๊ทธ๋๋ก๋ค. ์ค๋๋ ์ ์ต์๊ฐ์ด 0์ด๋ฉฐ, ์ด๋ ๊ฒ ์ค์ ํ๋ฉดMySQL
์ ์คํ๋๋ ๋ชจ๋ ์ฟผ๋ฆฌ๋ฅผ ๊ธฐ๋กํ๋ค.
- ์ฌ๋ฌ ์ํฉ์ ๊ณ ๋ คํด๋ด๋ ์ฑ๋ฅ ์คํค๋ง๋ ํ์ฌ ๋ชจ๋ ๋ฒ์ ๊ณผ ๋ฐฐํฌ ๋ฒ์ ์ ํฌํจ๋์ด ์์ผ๋ฏ๋ก ์ฟผ๋ฆฌ ๋ฉํธ๋ฆญ์ ์ ๊ณตํ๋ ๊ฐ์ฅ ์ข์ ์์ค์ด๋ค.
- ์ฑ๋ฅ ์คํค๋ง๋ ๋ก์ปฌ๊ณผ ํด๋ผ์ฐ๋์์ ์๋ํ๋ฉฐ, ์ด ์ฑ ์์ ์ ๊ณตํ๋ ์ฟผ๋ฆฌ ๋ฉํธ๋ฆญ์ ๋ชจ๋ ์ ๊ณตํ๊ณ ๊ฐ์ฅ ์ผ๊ด์ฑ์ด ์๋ค.
- ๋ํ
MySQL
์ ์ฌ์ธต ๋ถ์ํ ์ ์๋ ํ๋ถํ ์ฌํ ๋ฐ์ดํฐ๋ฅผ ํฌํจํ๋ฏ๋ก ๊ทธ ์ ์ฉ์ฑ์ ์ฟผ๋ฆฌ ๋ฉํธ๋ฆญ ์ฐจ์์ ํจ์ฌ ๋ฅ๊ฐํ๋ค. - ์ฌ๋ก ์ฟผ๋ฆฌ ๋ก๊ทธ๋ ์ข์ ์์ค์ด์, ๋ค์๊ณผ ๊ฐ์ด ๋งค์ฐ ๋ค์ํ๋ค.
MySQL
- ์์คํ
๋ณ์
log_slow_extra
๋ฅผ ํ์ฑํํ๋ฉด ๋๋ค. - ์ฑ๋ฅ ์คํค๋ง์ ๋นํด ์ ๊ณตํ๋ ์ฟผ๋ฆฌ ๋ฉํธ๋ฆญ์ด ์ ํ์ ์ด์ด์, ๊ฐ๋ฅํ๋ฉด ์ฑ๋ฅ ์คํค๋ง๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค.
- ์ฟผ๋ฆฌ ๋ฉํธ๋ฆญ์ด ์ ํ๋๋ฉด ๋ถ์์ ์ง์ ๋ฎ์์ง ์ ๋ฐ์ ์๋ค.
- ์์คํ
๋ณ์
Percona
์๋ฒ- ์์คํ
๋ณ์
log_slow_inquency
๋ฅผ ๊ตฌ์ฑํ๋ฉด ์ฌ๋ก ์ฟผ๋ฆฌ ๋ก๊ทธ์ ํจ์ฌ ๋ ๋ง์ ๋ฉํธ๋ฆญ์ ์ ๊ณตํ๋ค. - ์์คํ
๋ณ์
log_slow_rate_limit
๊ฐ ๊ตฌ์ฑ๋๋ฉด ์ฟผ๋ฆฌ ์ํ๋ง์ ์ง์ํ๋ฏ๋ก ์ฌ์ฉ๋์ด ๋ง์ ์๋ฒ ์ ์ฉํ๋ค. - ์ด๋ฌํ ๊ธฐ๋ฅ ๋๋ฌธ์
Percona
์๋ฒ์ ์ฌ๋ก ์ฟผ๋ฆฌ ๋ก๊ทธ๋ ํ๋ฅญํ ์์ค๋ก์ ์ญํ ์ ํ๋ค.
- ์์คํ
๋ณ์
MariaDB
์๋ฒPercona
์๋ฒ์ ์ฌ๋ก ์ฟผ๋ฆฌ ๋ก๊ทธ ํฅ์์ ์ฌ์ฉํ์ง๋ง ๋ ๊ฐ์ง ์ฐจ์ด์ ์ด ์๋ค.- ์์คํ
๋ณ์
log_slow_verbosity
๊ฐMariaDB
์์๋ ๋ค๋ฅด๊ฒ ๊ตฌ์ฑ์ด ๋๊ณ ,Rows_affected
๋ฉํธ๋ฆญ์ ์ ๊ณตํ์ง ์๋๋ค๋ ์ ์ด๋ค. - ์ด์ธ์๋ ๋ง์ฐฌ๊ฐ์ง๋ก ํ๋ฅญํ ์์ค๋ก์ ์ญํ ์ ํ๋ค.
- ์ฌ๋ก ๋ก๊ทธ ์ฟผ๋ฆฌ๋ ๊ธฐ๋ณธ์ผ๋ก ๋นํ์ฑํ๋์ด ์์ง๋ง,
MySQL
์ ์ฌ์์ํ ํ์์์ด ๋ฐ๋ก ํ์ฑํํ ์ ์๋ค. - ์ฑ๋ฅ ์คํค๋ง๋ ๊ธฐ๋ณธ์ผ๋ก ํ์ฑํ๋์ด์ผ ํ์ง๋ง, ์ผ๋ถ ํด๋ผ์ฐ๋ ์ ๊ณต์๋ ๋นํ์ฑํ๋ฅผ ๊ธฐ๋ณธ์ผ๋ก ์ค์ ํ๊ธฐ๋ ํ๋ค.
- ๋ํ ์ฌ๋ก ๋ก๊ทธ ์ฟผ๋ฆฌ์๋ ๋ฌ๋ฆฌ ์ฑ๋ฅ ์คํค๋ง๋ฅผ ํ์ฑํํ๋ ค๋ฉด
MySQL
์ ์ฌ์์ํด์ผ ํ๋ค.
์ฌ๋ก ์ฟผ๋ฆฌ ๋ก๊ทธ๋
long_query_time
์ 0์ผ๋ก ์ค์ ํ๋ฉด ๋ชจ๋ ์ฟผ๋ฆฌ๋ฅผ ๊ธฐ๋กํ ์ ์์ง๋ง, ์ฃผ์ํด์ผ ํ๋ค. ์ฌ์ฉ๋์ด ๋ง์ ์๋ฒ์์๋ ๋์คํฌ ์ ์ถ๋ ฅ์ด ์ฆ๊ฐํ๊ณ , ์๋นํ ์์ ๋์คํฌ ๊ณต๊ฐ์ ์ฌ์ฉํ ์ ์๋ค.
์ง๊ณ
- ์ฟผ๋ฆฌ ๋ฉํธ๋ฆญ์ ์ฟผ๋ฆฌ ๋ณ๋ก ๊ทธ๋ฃนํ๋๊ณ ์ง๊ณ๋๋ค.
- ์ฟผ๋ฆฌ ์๋ต ์๊ฐ์
MySQL
์ฑ๋ฅ์์ ํต์ฌ ์งํ์ด๋ฏ๋ก ์ฟผ๋ฆฌ ๋ณ๋ก ์ฟผ๋ฆฌ ๋ฉํธ๋ฆญ์ ๊ทธ๋ฃนํํ๋ ๊ฒ์ด ์๋ต ์๊ฐ์ด ๊ฐ์ฅ ๋๋ฆฐ ์ฟผ๋ฆฌ๋ฅผ ํ์ธํ๋ ์ต์ ์ ๋ฐฉ๋ฒ์ด๋ค. - ํ ๊ฐ์ง ๋ฌธ์ ๊ฐ ์กด์ฌํ๋๋ฐ, ์ด๋ป๊ฒ ํด์ผ ์ฟผ๋ฆฌ๊ฐ ์ํ ๊ทธ๋ฃน์ ๊ณ ์ ํ๊ฒ ์๋ณํ ์ ์๋ ์ง์ด๋ค.
- ๊ฐ๋ น ์์คํ
๋ฉํธ๋ฆญ(
CPU
, ๋ฉ๋ชจ๋ฆฌ, ์คํ ๋ฆฌ์ง) ๋ฑ์ ํธ์คํธ ์ด๋ฆ์ด ๊ณ ์ ํ๋ฏ๋ก ํธ์คํธ ์ด๋ฆ ๋ณ๋ก ๊ทธ๋ฃนํ๋๋ค. - ๊ทธ๋ฌ๋ ์ฟผ๋ฆฌ์๋ ํธ์คํธ ์ด๋ฆ์ฒ๋ผ ๊ณ ์ ํ๊ฒ ์๋ณ๋๋ ํน์ฑ์ด ์๋ค.
- ์ด๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ด ์ ๊ทํ๋
SQL
๋ฌธ์SHA-256
ํด์๋ก ๋ณํํ๋ ๊ฒ์ด๋ค.
1
2
3
SELECT col FROM tbl WHERE id=1; # SQL
SELECT `col` FROM `tbl` WHERE `id` = ? # ์ ๊ทํ๋ SQL
3d590d7a91357f8b1e2f8458f8289111321b6bbad6ff3eb785e4fc18a79ca06c # ํด์๊ฐ
- ์ ๊ทํ๋
SQL
์ ๋ค์ด์ ์คํธ ํ ์คํธ, ํด์๊ฐ์ ๋ค์ด์ ์คํธ ํด์๋ผ๊ณ ํ๋ค. MySQL
๋งค๋ด์ผ์์๋ ์ด ๋์ ๊ฐ๋ฆฌํฌ ๋ ๋ชจํธํ๊ฒ ๋ค์ด์ ์คํธ๋ผ๊ณ ์ง์นญํ๋ค.- ์ฟผ๋ฆฌ ๋ฉํธ๋ฆญ์ ๋งฅ๋ฝ์์ ์ฉ์ด์ ์ค์ํ ๋ณํ๊ฐ ์๋ค.
- ์ฟผ๋ฆฌ๋ผ๋ ์ฉ์ด๋ ๋ค์ด์ ์คํธ ํ ์คํธ์ ๋์์ด๋ก ๋ณ๊ฒฝ๋๋ค.
SQL
๋ฌธ์ ์ฟผ๋ฆฌ ์ํ์ด๋ผ๊ณ ๋ ํ๋ฉฐ, ๋ณด๊ณ ๋ ์๋ ์๊ณ ๊ทธ๋ ์ง ์์ ์๋ ์๋ค.- ๋๋ถ๋ถ์ ์ฟผ๋ฆฌ ๋ฉํธ๋ฆญ ๋๊ตฌ๋ ๋ณด์ ๋๋ฌธ์ ์ํ์ ํ๊ธฐํ๊ณ ๋ค์ด์ ์คํธ ํ ์คํธ์ ํด์๋ง ๋ณด๊ณ ๋๋ค.
EXPLAIN
๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ๋ฉด ์ฟผ๋ฆฌ ์คํ์ ์ดํดํ๋๋ฐ ํ์ํ ๋ฉํ ๋ฐ์ดํฐ๋ฅผ ์์ฑํ ์ ์์ผ๋ฏ๋ก ์ฟผ๋ฆฌ ๋ถ์์ ์ํ์ด ํ์ํ๋ค.- ์ผ๋ถ ์ฟผ๋ฆฌ ๋ฉํธ๋ฆญ ๋๊ตฌ๋ ์ํ์
EXPLAIN
ํ ๋ค์ ํ๊ธฐํ๊ณEXPLAIN
๊ณํ(EXPLAIN
๊ฒฐ๊ณผ)์ ๋ณด๊ณ ํ๋ค. - ์ํ๋ง ๋ณด๊ณ ํ๋ ๋๊ตฌ๋ค๋ ์์ง๋ง,
EXPLAIN
๋ช ๋ น์SQL
์ ๋ณต์ฌ ๋ฐ ๋ถ์ฌ๋ฃ๊ธฐํ๋ฉด ๋๋ฏ๋ก ์ฌ์ ํ ํธ๋ฆฌํ๋ค. - ๋ง์ฝ ์ด๋ฌํ ๊ธฐ๋ฅ์ด ์์ผ๋ฉด ์์ค์์
SQL
์ํ์ ์๋์ผ๋ก ์ถ์ถํ๊ฑฐ๋ ์์ฑํด์ผ ํ๋ค. - ์ฉ์ด๋ ๋ค์๊ณผ ๊ฐ์ด ์ฟผ๋ฆฌ ๋ฉํธ๋ฆญ ๋๊ตฌ์ ๋ฐ๋ผ ๋ค๋ฅด๋ค.
๊ณต์ | ๋์ฒด |
---|---|
SQL ๋ฌธ | ์ฟผ๋ฆฌ |
์ํ | ์ฟผ๋ฆฌ |
๋ค์ด์ ์คํธ ํ ์คํธ | ํด๋์ค, ํจ๋ฐ๋ฆฌ, ํ๊ฑฐํ๋ฆฐํธ, ์ฟผ๋ฆฌ |
๋ค์ด์ ์คํธ ํด์ | ํด๋์ค ID , ์ฟผ๋ฆฌ ID , ์๊ทธ๋์ฒ |
โ๊ฐ๊ฒฐํจ์ ์งํ์ ๋ณธ์ง์ด๋ค.โ
Percona
์์ ์ ๋ํ ๋ค๋ฅธ ์ฉ์ด๋ ์ฟผ๋ฆฌ ์ถ์ํ์ด๋ค.SQL
๋ช ๋ น๊ณผ ํ ์ด๋ธ ๋ชฉ๋ก์ผ๋ก ๊ณ ๋๋ก ์ถ์ํ๋SQL
๋ฌธ์ด๋ค.
1
2
SELECT col FROM tbl WHERE id=1; # SQL
SELECT tbl # ์ฟผ๋ฆฌ ์ถ์ํ
- ์ฟผ๋ฆฌ ์ถ์ํ๋ ๊ณ ์ ํ์ง๋ ์์ง๋ง ๊ฐ๊ฒฐํด์ ์ ์ฉํ๋ค.
- ๋๊ฐ ๊ฐ๋ฐ์๋ค์ ์ฟผ๋ฆฌ ์ถ์ํ๋ง ๋ณด๊ณ ๋ ๊ทธ๊ฒ์ด ๋ํ๋ด๋ ์ ์ฒด ์ฟผ๋ฆฌ๋ฅผ ์ ์ ์๋ค.
- ์ ๊ทํ ๊ณผ์ ์ ๋ ๋ค๋ฅธ ์ค์ํ ์ ์ ์ ์ํ๋ค.
- ๋ค๋ฅธ ๊ตฌ๋ฌธ์ผ๋ก ๊ฐ์ ๋ ผ๋ฆฌ์ ์ฟผ๋ฆฌ๋ฅผ ๋์ ์ผ๋ก ์์ฑํ๋ฉด ์๋๋ค.
- ๊ทธ๋ ์ง ์์ผ๋ฉด ๋ค์ด์ ์คํธ๋ก ์ ๊ทํ๋๊ณ ๋ค๋ฅธ ์ฟผ๋ฆฌ๋ก ๋ณด๊ณ ๋๋ค.
1
2
SELECT name FROM captions WHERE last_name = 'Picard';
SELECT name FROM captions WHERE last_name = 'Picard' AND first_name = 'Jean-Luc';
- ์ ๋ ์ฟผ๋ฆฌ๋ ๋ ผ๋ฆฌ์ ์ผ๋ก๋ ๊ฐ์ ์ ์์ง๋ง, ์๋ก ๋ค๋ฅธ ๋ค์ด์ ์คํธ๋ก ์ ๊ทํ๋๋ฏ๋ก ๋ณด๊ณ ์ธก๋ฉด์์๋ ์๋ก ๋ค๋ฅธ ์ฟผ๋ฆฌ์ด๋ค.
- ์ด๋ค ์ฟผ๋ฆฌ ๋ฉํธ๋ฆญ ๋๊ตฌ๋ ์ด ์ฟผ๋ฆฌ๋ค์ ๊ฒฐํฉํ ์ ์๋ค.
- ๊ทธ๋ฆฌ๊ณ ๋ชจ๋ ์กฐ๊ฑด, ํนํ
WHERE
์ ์ ์ฟผ๋ฆฌ ์คํ๊ณผ ์ต์ ํ์ ์ํฅ์ ๋ฏธ์น๋ฏ๋ก ๋ณ๋๋ก ์ด ์ฟผ๋ฆฌ๋ค์ ๋ณด๊ณ ํ๋ ๊ฒ์ด ๊ธฐ์ ์ ์ผ๋ก ์ณ๋ค. - ์ฟผ๋ฆฌ ์ ๊ทํ์์ ํ ๊ฐ์ง ์์์ผ ํ ์ ์ ๊ฐ์ด ์ ๊ฑฐ๋๋ฏ๋ก ๋ค์ ๋ ์ฟผ๋ฆฌ๋ ๊ฐ์ ๋ค์ด์ ์คํธ๋ก ์ ๊ทํ๋๊ณ ๊ทธ๋ฃนํ๋๊ณ ์ง๊ณ๋์ด ํ๋์ ์ฟผ๋ฆฌ๋ก ๋ณด๊ณ ๋๋ค.
1
2
3
SELECT `name` FROM star_ships WHERE class IN ('galaxy'); # SQL 1
SELECT `name` FROM star_ships WHERE class IN ('galaxy', 'intrepid'); # SQL 2
SELECT `name` FROM star_ships WHERE class IN (...); # ๋ค์ด์ ์คํธ ํ
์คํธ
๋ณด๊ณ
- ํ๋์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์๋ฐฑ ๊ฐ์ ์ฟผ๋ฆฌ๋ฅผ ๊ฐ์ง ์ ์์ผ๋ฏ๋ก ๋ณด๊ณ ๋ ๋์ ์ด์ ๊ธฐ์ ์ด๋ผ๊ณ ํ ์ ์๋ค.
- ๊ฐ ์ฟผ๋ฆฌ์๋ ๋ง์ ๋ฉํธ๋ฆญ์ด ์กด์ฌํ๋ฉฐ, ๊ฐ ๋ฉํธ๋ฆญ์๋ ์ต์, ์ต๋, ํ๊ท , ๋ฐฑ๋ถ์์ ๋ฑ ์ฌ๋ฌ ํต๊ณ๊ฐ์ด ์๋ค.
- ๋ํ ๊ฐ ์ฟผ๋ฆฌ์๋ ์ํ,
EXPLAIN
๊ณํ, ํ ์ด๋ธ ๊ตฌ์กฐ ๋ฑ์ ๋ฉํ ๋ฐ์ดํฐ๊ฐ ์๋ค. - ์ด ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์ฒ๋ฆฌํ๊ณ ๋ํ๋ด๋ ๊ฒ์ ์ด๋ ต๋ค.
- ๊ฑฐ์ ๋ชจ๋ ์ฟผ๋ฆฌ ๋ฉํธ๋ฆญ ๋๊ตฌ๋ ์ฟผ๋ฆฌ ํ๋กํ์ผ๊ณผ ์ฟผ๋ฆฌ ๋ณด๊ณ ์๋ผ๋ ๋ ๊ฐ์ง ์์ค์ ๊ณ์ธต ๊ตฌ์กฐ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํ๋ค.
์ฟผ๋ฆฌ ํ๋กํ์ผ
- ์ฟผ๋ฆฌ ํ๋กํ์ผ์๋ ๋๋ฆฐ ์ฟผ๋ฆฌ๊ฐ ํ์๋๋ค.
- ์ฟผ๋ฆฌ ๋ณด๊ณ ๋ฅผ ์ํด ์ต์๋จ์ ๊ตฌ์ฑ๋ ๊ฒ์ผ๋ก, ์ผ๋ฐ์ ์ผ๋ก ์ฟผ๋ฆฌ ๋ฉํธ๋ฆญ ๋๊ตฌ์ ์ฒ์ ํ์๋๋ ํญ๋ชฉ์ด๋ค.
- ์ฟผ๋ฆฌ ๋ค์ด์ ์คํธ์ ํจ๊ป ๋ฉํธ๋ฆญ์ ์ ํ๋ ํ์ ์ธํธ๋ฅผ ์ ๊ณตํ๋ฏ๋ก ํ๋กํ์ผ์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค.
- ๋๋ฆผ์ด๋ผ๋ ๊ฐ๋ ์ ์ฟผ๋ฆฌ๊ฐ ์ ๋ ฌ๋๋ ์ฟผ๋ฆฌ ๋ฉํธ๋ฆญ์ ์ง๊ณ์น์ธ ์ ๋ ฌ ๋ฉํธ๋ฆญ๊ณผ ๊ด๋ จ๋๋ค.
- ์ ๋ ฌ ๋ฉํธ๋ฆญ์ด ์ฟผ๋ฆฌ ์๊ฐ์ด ์๋๋๋ผ๋ ์ฒซ ๋ฒ์งธ๋ก ์ ๋ ฌ๋ ์ฟผ๋ฆฌ๋ฅผ ๊ฐ์ฅ ๋๋ฆฐ ์ฟผ๋ฆฌ๋ผ๊ณ ํ๋ค.
- ๋ง์ฝ ์ ๋ ฌ ๋ฉํธ๋ฆญ์ด ํ๊ท ์ ์ผ๋ก ์ ์ก๋ ํ ์๋ผ๋ฉด, ์ฒซ ๋ฒ์งธ๋ก ์ ๋ ฌ๋ ์ฟผ๋ฆฌ๊ฐ ์ฌ์ ํ ๊ฐ์ฅ ๋๋ฆฐ ์ฟผ๋ฆฌ๋ผ๊ณ ํ๋ค.
- ์ด๋ค ์ฟผ๋ฆฌ ๋ฉํธ๋ฆญ์ด๋ ์ ๋ ฌ ๋ฉํธ๋ฆญ์ด ๋ ์ ์์ง๋ง, ์ผ๋ฐ์ ์ผ๋ก๋ ์ฟผ๋ฆฌ ์๊ฐ์ด ๊ธฐ๋ณธ ์ ๋ ฌ ๋ฉํธ๋ฆญ์ด๋ค.
- ์ฟผ๋ฆฌ ์คํ ์๊ฐ์ ์ค์ด๋ฉด
MySQL
์ด ๋ ๋ง์ ์์ ์ ์ํํ๊ฑฐ๋ ๋ค๋ฅธ ์์ ์ ๋ ๋นจ๋ฆฌ ์ํํ ์ ์๋ ์๊ฐ์ ํ๋ณดํ ์ ์๋ค. - ์ฟผ๋ฆฌ ์๊ฐ์ ๊ธฐ์ค์ผ๋ก ์ฟผ๋ฆฌ๋ฅผ ์ ๋ ฌํ๋ฉด ๊ฐ์ฅ ๋๋ฆฌ๊ณ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ๋ ์ฟผ๋ฆฌ๋ถํฐ ํ์ธํ ์ ์๋ค.
- ๊ทธ๋ฌ๋ ์ฟผ๋ฆฌ ์๊ฐ์ด ์ด๋ป๊ฒ ์ง๊ณ๋๋์ง๋ ์ผ๋ฐ์ ์ผ๋ก ์๊ธฐ ์ด๋ ต๋ค.
- ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์ง๊ณ์น๋ ๋ค์๊ณผ ๊ฐ๋ค.
์ฟผ๋ฆฌ ์ด์๊ฐ
- ์ฟผ๋ฆฌ ์ด์๊ฐ์ ์คํ ์๊ฐ์ ์ดํฉ์ด๋ค.
- ์ด ๊ฐ์
MySQL
์ด ์คํํ๋ ๋ฐ ๊ฐ์ฅ ๋ง์ ์๊ฐ์ ์๋นํ๋ ์ฟผ๋ฆฌ๊ฐ ์ด๋ ๊ฒ์ธ์ง ์ ์ ์๋ ์ค์ํ๊ณ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์ง๊ณ์น๋ค. - ์ฟผ๋ฆฌ ๋ฉํธ๋ฆญ ๋๊ตฌ๋
MySQL
์ด ๊ฐ ์ฟผ๋ฆฌ๋ฅผ ์คํํ๋ ๋ฐ ์์๋๋ ๋ชจ๋ ์๊ฐ์ ํฉ์ฐํ๋ค. - ์ด์๊ฐ์ด ๊ฐ์ฅ ๊ธด ์ฟผ๋ฆฌ๋ ๊ฐ์ฅ ๋๋ฆฌ๊ณ , ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ๋ ์ฟผ๋ฆฌ๋ค.
- ์ด๊ฒ์ด ์ ์ค์ํ ์ง๋ฅผ ๋ณด์ฌ์ฃผ๋ ์์๊ฐ ์๋ค.
- ๊ฐ๋ น ์ฟผ๋ฆฌ
A
๋ ์๋ต ์๊ฐ์ด 1์ด์ด๊ณ 10๋ฒ ์คํ๋์ง๋ง, ์ฟผ๋ฆฌB
๋ ์๋ต ์๊ฐ์ด 0.1์ด์ด๊ณ 1,000๋ฒ ์คํ๋๋ค๊ณ ํ์. - ์ฟผ๋ฆฌ
A
๋ ์๋ต ์๊ฐ์ด ํจ์ฌ ๋๋ฆฌ์ง๋ง, ์ฟผ๋ฆฌB
๊ฐ 10๋ฐฐ ๋ ๋ง์ ์๊ฐ์ด ์์๋๋ค. - ์ฟผ๋ฆฌ ์ด์๊ฐ์ผ๋ก ์ ๋ ฌ๋ ์ฟผ๋ฆฌ ํ๋กํ์ผ์์ ๊ฐ์ฅ ๋๋ฆฐ ์ฟผ๋ฆฌ๋ ์ฟผ๋ฆฌ
B
๋ค. - ์ด๋ ์ฟผ๋ฆฌ
B
๋ฅผ ์ต์ ํํจ์ผ๋ก์จMySQL
์ ์๊ฐ์ ๊ฐ์ฅ ๋ง์ด ํ๋ณดํ ์ ์๊ธฐ ๋๋ฌธ์ ์ค์ํ๋ค.
์คํ ์๊ฐ ๋น์จ
- ์คํ ์๊ฐ ๋น์จ์ ์ฟผ๋ฆฌ ์ด์๊ฐ์ ์คํ ์ด์๊ฐ์ผ๋ก ๋๋ ๊ฐ์ด๋ค.
- ์๋ฅผ ๋ค์ด ์ฟผ๋ฆฌ
C
์ ์ฟผ๋ฆฌ ์ด์๊ฐ์ด 321ms์ด๊ณ , ์ฟผ๋ฆฌD
์ ์ฟผ๋ฆฌ ์ด์๊ฐ์ด 100ms์ด๋ฉด ์คํ ์ด์๊ฐ์ 421ms์ด๋ค. - ๊ฐ๋ณ์ ์ผ๋ก ์ฟผ๋ฆฌ
C
๋ ์คํ ์ด์๊ฐ์(321 / 421) ร 100 = 76.2%
์ด๊ณ ์ฟผ๋ฆฌD
๋ ์คํ ์ด์๊ฐ์(100 / 421) ร 100 = 23.8%
์ด๋ค. - ์ฆ
MySQL
์ ์ฟผ๋ฆฌ๋ฅผ ์คํํ๋ ๋ฐ ์ด 421ms๊ฐ ์์๋์์ผ๋ฉฐ, ๊ทธ์ค 76.2%๋ ์ฟผ๋ฆฌC
๋ฅผ ์คํํ๋ ๋ฐ ํ ์ ํ์๋ค. - ์คํ ์๊ฐ ๋น์จ๋ก ์ ๋ ฌ๋ ํ๋กํ์ผ์์๋ ์ฟผ๋ฆฌ
C
๊ฐ ๊ฐ์ฅ ๋๋ฆฐ ์ฟผ๋ฆฌ์ด๋ค. - ์คํ ์๊ฐ ๋น์จ์ ์ผ๋ถ ์ฟผ๋ฆฌ ๋ฉํธ๋ฆญ ๋๊ตฌ์์๋ง ์ฌ์ฉ๋๋ค.
์ฟผ๋ฆฌ ๋ถํ
- ์ฟผ๋ฆฌ ๋ถํ๋ ์ฟผ๋ฆฌ ์ด์๊ฐ์ ํด๋ญ ํ์์ผ๋ก ๋๋ ๊ฒ์ด๋ค.
- ํด๋ญ ํ์์ด๋ ์๊ฐ ๋ฒ์์ ๋ํ ์ ์ฒด ์ด ์์ด๋ค.
- ์๊ฐ ๋ฒ์๊ฐ 4๋ถ์ด๋ฉด ํด๋ญ ์๊ฐ์ 300์ด์ด๋ค.
- ์๋ฅผ ๋ค์ด ์ฟผ๋ฆฌ
E
์ ์ฟผ๋ฆฌ ์ด์๊ฐ์ด 250.2์ด์ด๋ฉด ๋ถํ๋250.2 / 300 = 0.83
์ด๋ค. - ๋ํ ์ฟผ๋ฆฌ
F
์ ์ฟผ๋ฆฌ ์ด์๊ฐ์ด 500.1์ด์ด๋ฉด ๋ถํ๋500.1 / 300 = 1.67
์ด๋ค. - ์ฟผ๋ฆฌ ๋ถํ ๋ณ๋ก ์ ๋ ฌ๋ ์ฟผ๋ฆฌ ํ๋กํ์ผ์์ ์ฟผ๋ฆฌ
F
๋ ๊ฐ์ฅ ๋ถํ๊ฐ ํฌ๋ฏ๋ก ๊ฐ์ฅ ๋๋ฆฐ ์ฟผ๋ฆฌ์ ํด๋น๋๋ค. - ๋ถํ๋ ์๊ฐ๊ณผ ๊ด๋ จ ์๊ธฐ๋ ํ์ง๋ง ๋์์ ์คํ๋๋ ๋ค์ค ์ธ์คํด์ค์ ๊ฐ์ ๋์์ฑ์ ๋ฏธ๋ฌํ๊ฒ ๋ํ๋ด๊ธฐ๋ ํ๋ค.
- ์ฟผ๋ฆฌ ๋ถํ๊ฐ ํ๊ท ์ ์ผ๋ก 1.0๋ณด๋ค ์์ผ๋ฉด ์ฟผ๋ฆฌ๊ฐ ๋์์ ์คํ๋์ง ์๋๋ค.
- ์๋๋ผ๋ฉด ์ฟผ๋ฆฌ ๋์์ฑ์ ๋ํ๋ธ๋ค.
- ์๋ฅผ ๋ค์ด ์ฟผ๋ฆฌ ๋ถํ๊ฐ 3.5๋ผ๋ ๊ฒ์ ์ธ์ ๋ ์ง ์กฐํํ๋ฉด ์คํ ์ค์ธ ์ฟผ๋ฆฌ์ ์ธ์คํด์ค๊ฐ 3.5๊ฐ ์ ๋ ์๋ค๋ ๊ฒ๊ณผ ๊ฐ๋ค.
- ์ฟผ๋ฆฌ ๋ถํ๊ฐ ๋์ ์๋ก ์ฟผ๋ฆฌ๊ฐ ๋์ผํ๊ฑฐ๋ ๊ฐ๊น์ด ํ์ ์ ๊ทผํ ๋ ๊ฒฝํฉํ ๊ฐ๋ฅ์ฑ์ด ์ปค์ง๋ค.
- 10๋ณด๋ค ํฐ ์ฟผ๋ฆฌ ๋ถํ๋ ๋งค์ฐ ๋๋ฆฐ ์ฟผ๋ฆฌ์ผ ๊ฐ๋ฅ์ฑ์ด ์์ง๋ง ์์ธ ์ํฉ์ด ์์ ์ ์๋ค.
- ์ ๋ ฌ ๋ฉํธ๋ฆญ์ด ๋ณด๋ธ ํ๊ณผ ๊ฐ์ ๋น์๊ฐ์ ์ฟผ๋ฆฌ ๋ฉํธ๋ฆญ์ ์ฌ์ฉํ๋ฉด ์ง๋จํ๋ ค๋ ๋ด์ฉ์ ๋ฐ๋ผ ๋ค๋ฅธ ์ง๊ณ์น๊ฐ ์๋ฏธ ์์ ์ ์๋ค.
- ์ด๊ฒ์ ์ฟผ๋ฆฌ ์ด์๊ฐ๋ณด๋ค ํจ์ฌ ๋ ์ผ๋ฐ์ ์ด์ง๋ง, ๋๋ก๋ ์ต์ ํํ ๋งํ ๊ฐ์น๊ฐ ์๋ ์ฟผ๋ฆฌ๋ผ๋ ๊ฒ์ ์๋ ค์ค๋ค.
์ฟผ๋ฆฌ ๋ณด๊ณ ์
- ์ฟผ๋ฆฌ ๋ณด๊ณ ์๋ ํ๋์ ์ฟผ๋ฆฌ์ ๋ํด ์์์ผ ํ ๋ชจ๋ ๊ฒ์ ๋ณด์ฌ์ค๋ค.
- ์ด๊ฒ์ ์ฟผ๋ฆฌ ๋ณด๊ณ ๋ฅผ ๊ตฌ์ฑํ๋ ๋ ๋ฒ์งธ ๋จ๊ณ์ด๋ค.
- ์ผ๋ฐ์ ์ผ๋ก ์ฟผ๋ฆฌ ํ๋กํ์ผ์์ ๊ฐ์ฅ ๋๋ฆฐ ์ฟผ๋ฆฌ๋ฅผ ์ ํํ๋ ๊ฒ์ผ๋ก ์์ํ๋ค.
- ๋ํ ๋ชจ๋ ์ฟผ๋ฆฌ ๋ฉํธ๋ฆญ๊ณผ ๋ฉํ๋ฐ์ดํฐ๋ ์ ๊ณตํ๋ค.
- ์ฟผ๋ฆฌ ํ๋กํ์ผ์ ๊ทธ๊ฒ ์์ฒด๋ก๋ ๋ง์ ์ ๋ณด๋ฅผ ์ ๊ณตํ์ง๋ง, ์ฟผ๋ฆฌ ๋ณด๊ณ ์๋ ์ฟผ๋ฆฌ ๋ถ์์ ์ฌ์ฉ๋๋ ๋ง์ ์ ๋ณด๋ค๋ก ๊ตฌ์ฑ๋์ด ์๋ค.
- ๋ฐ๋ผ์ ์ฟผ๋ฆฌ ์คํ์ ์ดํดํ๋ ๋ฐ ๋์์ด ๋๋ฏ๋ก ์ ๋ณด๋ ๋ง์ ์๋ก ์ข๋ค.
- ์ฟผ๋ฆฌ ๋ณด๊ณ ์๋ ๋ฉํธ๋ฆญ ๋๊ตฌ์ ๋ฐ๋ผ ํฌ๊ฒ ๋ฌ๋ผ์ง๋ค.
- ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ์ต์ ๋ณด๊ณ ์์๋ ์์ค์์ ๋น๋กฏ๋ ๋ชจ๋ ์ฟผ๋ฆฌ ๋ฉํธ๋ฆญ๊ณผ ์ต์, ์ต๋, ํ๊ท , ๋ฐฑ๋ถ์์ ๋ฑ ํด๋น ๋ฉํธ๋ฆญ์ ๊ธฐ๋ณธ ํต๊ณ๊ฐ์ด ํฌํจ๋๋ค.
- ์ ์ฒด ๋ณด๊ณ ์์๋ ์ฟผ๋ฆฌ ์ํ,
EXPLAIN
๊ณํ, ํ ์ด๋ธ ๊ตฌ์กฐ ๋ฑ์ ๋ฉํ ๋ฐ์ดํฐ๊ฐ ํฌํจ๋๋ค. - ์ผ๋ถ ์ฟผ๋ฆฌ ๋ฉํธ๋ฆญ ๋๊ตฌ์์๋ ๋ฉํธ๋ฆญ ๊ทธ๋ํ, ํ์คํ ๊ทธ๋จ, ์ด์ ๊ฐ์ง, ์๊ฐ ์ด๋ ๋น๊ต, ๊ฐ๋ฐ์ ๋๊ตฌ,
SQL
์ฃผ์ ๋ฑ์ ์ถ๊ฐ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ค. - ์ฟผ๋ฆฌ ๋ถ์์๋ ๋ณด๊ณ ์์ ์ฟผ๋ฆฌ ๋ฉํธ๋ฆญ๋ง ์์ผ๋ฉด ๋๊ณ , ๋ฉํ ๋ฐ์ดํฐ๋ฅผ ์๋์ผ๋ก ์์งํ ์ ์๋ค.
- ๋ง์ฝ ์ฌ์ฉํ๋ ์ฟผ๋ฆฌ ๋ฉํธ๋ฆญ ๋๊ตฌ๊ฐ ์ฟผ๋ฆฌ ๋ฉํธ๋ฆญ๋ง ๋ณด๊ณ ํ๋ค๋ฉด, ์ต์ํ
EXPLAIN
๊ณํ๊ณผ ํ ์ด๋ธ ๊ตฌ์กฐ๋ฅผ ์๋์ผ๋ก ์์งํ๋ ๊ฒ๋ถํฐ ์์ํด์ผ ํ๋ค. - ์ด๋ ๊ฒ ์ฟผ๋ฆฌ ๋ณด๊ณ ์๊ฐ ์๋ค๋ฉด, ์ฟผ๋ฆฌ ๋ถ์์ ์ํํ ์ค๋น๊ฐ ๋ ๊ฒ์ด๋ค.