ํ๊ธฐ: ์ธ๋ฑ์ค๋ real mysql์ด ์ ์์ด๋ผ๊ณ ํ์ ๋ค... ์ฑ ์ฐธ๊ณ ํด๋ณด์
0. ๋ฉด์ ์ง๋ฌธ
- ๋๋ค I/O์ ์์ฐจ I/O์ ๋ํด์ ์ค๋ช ํด์ฃผ์ธ์.
- ์ธ๋ฑ์ค์ ๋ํด์ ์ค๋ช ํด์ฃผ์ธ์.
- ์ธ๋ฑ์ค์ ๋์ ๋ฐฉ์์ ๋ํด์ ์ค๋ช ํด์ฃผ์ธ์.
- ์ด๋ค ๊ธฐ์ค์ผ๋ก ์ธ๋ฑ์ค๋ฅผ ์ค์ ํด์ผํ ๊น์?
- ํ ์ด๋ธ์ ์ธ๋ฑ์ค๋ฅผ ๋ง์ด ์ค์ ํ๋ฉด ์ข์๊น์?
- ์ปค๋ฒ๋ง ์ธ๋ฑ์ค(Covering index)์ ๋ํด์ ์ค๋ช ํด์ฃผ์ธ์.
- ๋ค์ค ์ปฌ๋ผ ์ธ๋ฑ์ค(Multi-column index, ๋ณตํฉ ์ธ๋ฑ์ค)์ ๋ํด์ ์ค๋ช ํด์ฃผ์ธ์.
- B-Tree ์ธ๋ฑ์ค์ B+Tree ์ธ๋ฑ์ค์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์.
- Hash ์ธ๋ฑ์ค์ ๋ํด์ ์ค๋ช ํด์ฃผ์ธ์.
- ํด๋ฌ์คํฐ๋ง ์ธ๋ฑ์ค์ ๋ํด์ ์ค๋ช ํด์ฃผ์ธ์.
- ์ธ๋ฑ์ค ์ค์บ ๋ฐฉ์์ ๋ํด์ ์ค๋ช ํด์ฃผ์ธ์.
- ์ฟผ๋ฆฌ ์คํ ๊ณํ์ ๋ํด์ ์ค๋ช ํด์ฃผ์ธ์. ์คํ ๊ณํ์ ํ์ธํด๋ณธ์ ์ด ์๋์?
- ํํธ์ ๋ํด์ ์ค๋ช ํด์ฃผ์ธ์.
- ์ธ๋ฑ์ค๊ฐ ์ ๋์ํ๊ณ ์๋์ง ์ด๋ป๊ฒ ํ์ธํ ์ ์์๊น์?
- ์ธ๋ฑ์ค ์ฌ์ฉ์ ์ฃผ์ํด์ผํ ์ ์ ๋ํด์ ์๋ ค์ฃผ์ธ์.
- GROUP BY ์ฌ์ฉ์ ์ธ๋ฑ์ค๊ฐ ๊ฑธ๋ฆฌ๋ ์กฐ๊ฑด์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์.
- ์ด๋ฆ, ๊ตญ๊ฐ, ์ฑ๋ณ์ด ์๋ ํ ์ด๋ธ์์ ์ธ๋ฑ์ค๋ฅผ ์ด๋ป๊ฒ ๊ฑธ์ด์ผํ ๊น์?
1. ๋๋ค I/O์ ์์ฐจ I/O์ ๋ํด์ ์ค๋ช ํด์ฃผ์ธ์.
- ๋๋ค I/O
- ๋์คํฌ์์ ๋น์ฐ์์ ์ธ ์์น์ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ๋ ๋ฐฉ์
- ๋ฐ์ดํฐ๊ฐ ๋ถ์ฐ๋์ด ์์ด, ํน์ ์์น์ ์ ๊ทผ์ด ํ์ํ ๊ฒฝ์ฐ ์ฌ์ฉํ๋ฉฐ, ๋์คํฌ์ ํค๋๋ฅผ ์์ฃผ ์ด๋์์ผ์ผ ํ๋ค.
- ํน์ ์ธ๋ฑ์ค ๊ฒ์์ด๋ ์กฐ๊ฑด์ ๋ง๋ ๋ ์ฝ๋ ๊ฒ์์ ๋๋ค I/O๋ฅผ ์ด๋ค.
- ์ธ๋ฑ์ค ๋ ์ธ์ง ์ค์บ ์ ์ฌ์ฉ
- ์์ฐจ I/O
- ๋ฐ์ดํฐ๊ฐ ๋์คํฌ์ ์ฐ์์ ์ธ ๋ธ๋ก์ ์ ์ฅ๋์ด ์์ด, ๋ฐ์ดํฐ๋ฅผ ์ฐ์์ ์ธ ์์๋ก ์ฝ๋ ๋ฐฉ์
- ๋๋์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ๋ ํจ์จ์ ์ด๋ฉฐ, ํ์ผ์ ์ฒ์๋ถํฐ ๋๊น์ง ์ฝ๊ฑฐ๋ ์ธ ๋ ์ฑ๋ฅ์ด ์ข๋ค
- ํ ํ ์ด๋ธ ์ค์บ ์ ์ฌ์ฉ
- ๋๋ค I/O๋ ์์ฐจ I/O๋ณด๋ค ์ฒ๋ฆฌ์จ์ด ๋จ์ด์ง๋ค.
2. ์ธ๋ฑ์ค์ ๋ํด์ ์ค๋ช ํด์ฃผ์ธ์.
- ๊ฐ๋ : ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ํน์ ์ด์ ๋ํ ๋น ๋ฅธ ๊ฒ์์ ๊ฐ๋ฅํ๊ฒ ํด์ฃผ๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ
- ๋น์ : ์ฑ ์ ๋ชฉ์ฐจ์ฒ๋ผ, ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ์ฐพ์ ์ ์๋ค.
- DBMS์์ ๋ฐ์ดํฐ ๋ ์ฝ๋๋ฅผ ์ฐธ์กฐํ๋ ์ธ๋ฑ์ค๋ฅผ ๋ง๋ค๊ณ ์ด ์ธ๋ฑ์ค๋ก ๋ฐ์ดํฐ๊ฐ ์ ๋ ฌ๋๊ฑฐ๋ ํน์ ๊ตฌ์กฐ(์: B-Tree, ํด์ ๋ฑ)๋ก ์ ์ฅ๋์ด ๊ฒ์ ์๋๋ฅผ ๋์ธ๋ค.
- ์ฅ์
- ๋น ๋ฅธ๊ฒ์: ์ฟผ๋ฆฌ๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ๋น ๋ฅด๊ฒ ์ฐพ์ ์ ์๋ค. ๋๋ ๋ฐ์ดํฐ ๊ฒ์ ์ ๊ทธ ํจ๊ณผ๊ฐ ํฌ๋ค.
- ์ ๋ ฌ ๋ฐ ๊ทธ๋ฃนํ: ๋ฐ์ดํฐ ์ ๋ ฌ, ๊ทธ๋ฃนํ ์์ ์ ์ํํ๊ธฐ์ ์ข๋ค.
- ๋จ์
- ์ถ๊ฐ ์ ์ฅ ๊ณต๊ฐ ํ์
- ์ธ๋ฑ์ค ๊ฐฑ์ : ๋ฐ์ดํฐ ๋ณ๊ฒฝ ์ index ๊ฐฑ์ ๋ํ ํ์ํ๋ฉฐ, ์ด ๋ ์ถ๊ฐ์ ์ธ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํด์ผํ๋ค.
๋ฐ๋ผ์ ๋จ์ฉํ์ง ์๊ณ ํ์ํ ์ ๋๋ก ์ธ๋ฑ์ค๋ฅผ ์ ์ค๊ณํ๊ณ ์ฌ์ฉํด์ผ ํ๋ค.
3. ์ธ๋ฑ์ค์ ๋์ ๋ฐฉ์์ ๋ํด์ ์ค๋ช ํด์ฃผ์ธ์.
1. ์ธ๋ฑ์ค ์์ฑ
- ์ธ๋ฑ์ค ๊ตฌ์กฐ ์์ฑ: ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ธ๋ฑ์ค๋ฅผ ์์ฑํ ๋, ์ ํ๋ ์ปฌ๋ผ์ ๊ฐ๋ค์ด ์ธ๋ฑ์ค์ ํค๋ก ์ฌ์ฉ๋๋ฉฐ, ์ด ํค์ ์ค์ ๋ฐ์ดํฐ์ ์์น(์ฃผ์)๋ฅผ ์ฐ๊ฒฐํ๋ ๊ตฌ์กฐ๊ฐ ๋ง๋ค์ด์ง๋ฉฐ, ์ด๋ ์ธ๋ฑ์ค ํค๋ค์ ํน์ ์๊ณ ๋ฆฌ์ฆ(์: B-Tree, B+Tree ๋ฑ)์ ๋ฐ๋ผ ์ ๋ ฌ๋์ด ์ ์ฅ๋๋ค. ์ ๋ ฌ๋ ์ธ๋ฑ์ค ํค๋ ๋ฐ์ดํฐ๋ฅผ ๋น ๋ฅด๊ฒ ๊ฒ์ํ๋ ๋ฐ ํ์ํ๋ค.
- ๊ฒ์ ํจ์จ์ฑ ํฅ์: ์ธ๋ฑ์ค๊ฐ ์ ๋ ฌ๋์ด ์ ์ฅ๋๋ฏ๋ก, ์ด์ง ํ์ ๋ฑ์ ํจ์จ์ ์ธ ๊ฒ์ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๊ณ , ๊ฒฐ๊ณผ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ธ๋ฑ์ค๋ฅผ ํตํด ๊ฒ์ ์์ ์ ๋ ๋น ๋ฅด๊ฒ ์ํํ ์ ์๋ค.
2. ๊ฒ์ ์์
- ์ธ๋ฑ์ค ํ์: ์ฌ์ฉ์๊ฐ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ ๋, ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋จผ์ ํด๋น ์ฟผ๋ฆฌ์ ๋ง๋ ์ธ๋ฑ์ค๊ฐ ์๋์ง ํ์ธํ๋ค. ์ธ๋ฑ์ค๊ฐ ์กด์ฌํ๊ณ ๊ฒ์ ์กฐ๊ฑด์ ํด๋นํ๋ฉด, ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ ์ฒด ํ ์ด๋ธ์ ์ค์บํ์ง ์๊ณ ์ธ๋ฑ์ค๋ฅผ ํตํด ๋น ๋ฅด๊ฒ ๊ฒ์์ ์์ํ๋ค.
- ๋ฐ์ดํฐ ์์น ํ์ธ: ์ธ๋ฑ์ค์์ ๊ฒ์ ํค๊ฐ ๋ฐ๊ฒฌ๋๋ฉด, ํด๋น ํค์ ์ฐ๊ฒฐ๋ ์ค์ ๋ฐ์ดํฐ์ ์์น(์ฃผ์)๋ฅผ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ฐ๋ก ๊ทธ ์์น๋ก ์ ๊ทผํ๊ณ , ์ด๋ฅผ ํตํด ๋น ๋ฅธ ๊ฒ์์ด ๊ฐ๋ฅํ๋ค.
3. ๋ฐ์ดํฐ ์์
- ๋ฐ์ดํฐ ์ฝ์ , ์ญ์ , ์์ ์ ์ธ๋ฑ์ค ํค์ ์ํฅ์ ๋ฏธ์น๋ฉด ๊ธฐ์กด ์ธ๋ฑ์ค ์ํธ๋ฆฌ๊ฐ ์ญ์ ๋๊ณ , ์๋ก์ด ์ธ๋ฑ์ค ์ํธ๋ฆฌ๊ฐ ์๊ฒจ ํญ์ ์ต์ ๋ฐ์ดํฐ๊ฐ ๋ํ๋๋ค.
4. ์ด๋ค ๊ธฐ์ค์ผ๋ก ์ธ๋ฑ์ค๋ฅผ ์ค์ ํด์ผํ ๊น์?
- ์ฟผ๋ฆฌ์ ๊ฒ์ ํจ์จ์ฑ: ๋์ฉ๋์ ๊ด๊ณ์์ ๋๋ถ๋ถ์ ์ฟผ๋ฆฌ๊ฐ ๊ฒฐ๊ณผ์ 2%~4%๋ฅผ ๊ฒ์ํ๋ ๊ฒฝ์ฐ
- ์ธ๋ฑ์ค ์: ํ ๊ด๊ณ์ ๋ํด ์ธ ๊ฐ ์ดํ์ ์ธ๋ฑ์ค๋ฅผ ๋ง๋๋ ๊ฒ์ด ์ข๋ค.
- ๊ฐฑ์ ๋น๋: ๋ฐ์ดํฐ ๊ฐฑ์ ์ด ๋น๋ฒํ ์์ฑ์ด๋ ๊ด๊ณ์๋ ์ธ๋ฑ์ค๋ฅผ ๋ง์ด ๋ง๋ค์ง ์๋ ๊ฒ์ด ์ข๋ค.
- ๋ ์ฝ๋ ๋ถํ
- ๋๋ ๋ฐ์ดํฐ ์ฝ์ : ๋๋์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ ๋๋ ๋ชจ๋ ์ธ๋ฑ์ค๋ฅผ ์ ๊ฑฐํ๊ณ , ์ฝ์ ์ด ๋๋ ํ์ ์ธ๋ฑ์ค๋ฅผ ๋ค์ ์์ฑํ๋ ๊ฒ์ด ์ข๋ค.
5. ํ ์ด๋ธ์ ์ธ๋ฑ์ค๋ฅผ ๋ง์ด ์ค์ ํ๋ฉด ์ข์๊น์?
๋น์ฐํ ๋ง ์ฌ์ฉํ๋ฉด ์๋๋ค.
์์ฃผ ๊ฒ์๋๋ฉฐ, ๋ฎ์ ์ค๋ณต๋๋ฅผ ๊ฐ์ง ๊ณณ ๊ณณ์ ์ธ๋ฑ์ค๋ฅผ ์ค์ ํด์ผํ๋ค.
์ธ๋ฑ์ค๊ฐ ๋ง์์ง๋ฉด ๊ฒ์ ์๋๋ ๋นจ๋ผ์ง์ง๋ง ์ฐ๊ธฐ ์์ (์ฝ์ , ์ญ์ , ๊ฐฑ์ ) ์ ์๋๊ฐ ๋๋ ค์ง ์ ์๋ค.
๋ฐ๋ผ์ ๊ฒ์ ์ฟผ๋ฆฌ๊ฐ ๋ง๋ค๋ฉด ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ง๋ง, ์ฐ๊ธฐ ์์ ์ด ์ฆ์ ๊ฒฝ์ฐ ์ธ๋ฑ์ค์ ์ค๋ฒํค๋๋ฅผ ๊ณ ๋ คํ์ฌ ์ ํฉํ ์ธ๋ฑ์ค ์๋ฅผ ์ค์ ํด์ผํ๋ค.
์ธ๋ฑ์ค์ ์ฅ๋จ์ ์ ์ ๊ณ ๋ คํด์ผํ๋ค.
6. ์ปค๋ฒ๋ง ์ธ๋ฑ์ค(Covering index)์ ๋ํด์ ์ค๋ช ํด์ฃผ์ธ์.
- ๊ฐ๋
: ํน์ ์ฟผ๋ฆฌ ์ฒ๋ฆฌํ๋๋ฐ ํ์ํ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ํฌํจํ๋ ์ธ๋ฑ์ค
- ์ฟผ๋ฆฌ์์ ์์ฒญ๋ ๋ชจ๋ ์ปฌ๋ผ์ด ์ธ๋ฑ์ค์ ํฌํจ๋๋ฉฐ, ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ค์ ํ ์ด๋ธ์ ์ฐธ์กฐํ์ง ์์๋ ์ธ๋ฑ์ค๋ง ๋ณด๊ณ ์ฟผ๋ฆฌ๋ฅผ ์ฒ๋ฆฌํ ์ ์๋ค.
- ๋์ ๋ฐฉ์
- ์ปค๋ฒ๋ง ์ธ๋ฑ์ค ์ฌ์ฉ ์: ํ ์ด๋ธ ์ ๊ทผํ ํ์๊ฐ ์์ด์ง
- ์ฌ์ฉ ์ํ ์: ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ์ฌ ์กฐ๊ฑด์ ๋ง๋ ๋ ์ฝ๋๋ฅผ ์ฐพ๊ณ , ๊ทธ ํ ํด๋น ๋ ์ฝ๋์ ์ค์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ธฐ ์ํด ํ ์ด๋ธ์ ์ ๊ทผ
- ์ฅ์
- ๋์คํฌ I/O ๊ฐ์์ ์ฟผ๋ฆฌ ๊ฐ์ํ
- ์ต์ ํ๋ ์ธ๋ฑ์ค ํฌ๊ธฐ
- ์ฃผ์์
- ์ธ๋ฑ์ค ์ค๊ณ ์ ์ ์คํจ์ ๊ฐํด์ผํ๋ค. ์ปค๋ฒ๋ง ์ธ๋ฑ์ค๋ ํน์ ์ฟผ๋ฆฌ์ ๋ง์ถฐ ์ค๊ณ๋๋ฏ๋ก, ์ด๋ค ์ปฌ๋ผ์ ์ธ๋ฑ์ค์ ํฌํจ์ํฌ์ง ์ ์คํ๊ฒ ๊ฒฐ์ ํด์ผ ํ๋ค.
- ์ธ๋ฑ์ค ํฌ๊ธฐ ๊ด๋ฆฌ ํ์: ์ธ๋ฑ์ค๊ฐ ๋๋ฌด ์ปค์ง๋ฉด ๋ฉ๋ชจ๋ฆฌ์ ๋์คํฌ ๊ณต๊ฐ์ ๋ง์ด ์ฐจ์งํ๊ฒ ๋๋ฉฐ, ์ธ๋ฑ์ค ์ ์ง ๋ฐ ๊ด๋ฆฌ ๋น์ฉ์ด ์ฆ๊ฐ
7. ๋ค์ค ์ปฌ๋ผ ์ธ๋ฑ์ค(Multi-column index, ๋ณตํฉ ์ธ๋ฑ์ค)์ ๋ํด์ ์ค๋ช ํด์ฃผ์ธ์.
- ๊ฐ๋ : ๋๊ฐ ์ด์์ ์ปฌ๋ผ์ ๊ฒฐํฉํ์ฌ ์์ฑํ ์ธ๋ฑ์ค
- ์์
- A์ B๋ผ๋ ๋ ์ปฌ๋ผ์ ๋ํด (A, B) ๋ค์ค ์ปฌ๋ผ ์ธ๋ฑ์ค๋ฅผ ์์ฑ. ์ด ๊ฒฝ์ฐ ๋ฐ์ดํฐ๋ ๋จผ์ A ์ปฌ๋ผ์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ๋๊ณ , ๊ฐ์ A ๊ฐ ๋ด์์๋ B ์ปฌ๋ผ ๊ฐ์ ๋ฐ๋ผ ๋ค์ ์ ๋ ฌ๋๋ค.
- ์ด ์ธ๋ฑ์ค๋ WHERE A = ... AND B = ... ํํ์ ์ฟผ๋ฆฌ์์ ๊ฐ์ฅ ํจ๊ณผ์ ์ด๋ฉฐ, A ์ปฌ๋ผ๋ง ์ฌ์ฉํ๋ ์กฐ๊ฑด์์๋ ์ฑ๋ฅ ํฅ์์ ๊ธฐ๋ํ ์ ์์ง๋ง B ์ปฌ๋ผ๋ง ์ฌ์ฉํ๋ ์กฐ๊ฑด์์๋ ์ด ์ธ๋ฑ์ค๊ฐ ์ ๋๋ก ํ์ฉ๋์ง ์์ ์ ์๋ค.
8. B-Tree ์ธ๋ฑ์ค์ B+Tree ์ธ๋ฑ์ค์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์.
B-Tree
- ๊ฐ๋ : ๊ท ํ ์กํ ํธ๋ฆฌ ๊ตฌ์กฐ๋ก, ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ์ผ ์์คํ ์์ ๋๋์ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๊ณ ๊ฒ์ํ๋ ๋ฐ ์ฌ์ฉ
- ํน์ง
- ๋ค์ค ์์ ๋ ธ๋: ๊ฐ ๋ ธ๋๋ ์ฌ๋ฌ ๊ฐ์ ํค, ์์์ ๊ฐ์ง ์ ์๋ค.
- ์ ๋ ฌ๋ ๋ ธ๋: ๊ฐ ๋ ธ๋ ๋ด์ ํค๋ค์ ์ ๋ ฌ๋ ์ํ๋ก ์ ์ง
- ๊ท ํ ์ ์ง: ๋ชจ๋ ๋ฆฌํ ๋ ธ๋๋ ๋์ผํ ๊น์ด์ ์์น
- ๋์ ๋ฐ์ดํฐ ๊ด๋ฆฌ: ๋ฐ์ดํฐ ์ฝ์ ,์ญ์ ์ ํธ๋ฆฌ ๊ท ํ ์๋ ์กฐ์
- ์ฅ์
- ๋น ๋ฅธ ๊ฒ์๊ณผ ์ ๋ ฌ ์ง์
- ํจ์จ์ ์ธ ๊ฒ์ ๊ฐ๋ฅ
- ๊ท ํ ์ ์ง
- ๋ฒ์ ๊ฒ์์ ์ ๋ฆฌ
- ๋จ์
- ๋ณต์กํ ๊ตฌํ
- ๊ณต๊ฐ ๋ญ๋น ๊ฐ๋ฅ์ฑ
- ๋ฐ์ดํฐ ์ฌ๊ตฌ์ฑ ํ์
B+Tree
- B-Tree๋ ์ค๊ฐ ๋ ธ๋์์๋ ๋ฐ์ดํฐ๋ฅผ ์ฐพ์ ์ ์๊ณ , ๋ชจ๋ ๋ฆฌํ ๋ ธ๋๋ ๊ฐ์ ๊น์ด์ ์์นํ๋ค. ๋ ธ๋์๋ ํค ๊ฐ๊ณผ ํค๊ฐ์ ๋ํ ํฌ์ธํฐ๊ฐ ์กด์ฌ
- B+Tree๋ ๋ฆฌํ ๋ ธ๋์๋ง ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ , ๋ด๋ถ ๋ ธ๋์ ๊ฒฝ์ฐ ํค๊ฐ๊ณผ ์์ ๋ ธ๋์ ๋ํ ํฌ์ธํฐ๋ง์ ์ ์ฅํ๋ค.
9. Hash ์ธ๋ฑ์ค์ ๋ํด์ ์ค๋ช ํด์ฃผ์ธ์.
- ๊ฐ๋ : ๋ฐ์ดํฐ๋ฅผ ํด์ ํจ์์ ์ํด ์์ฑ๋ ํด์๊ฐ์ ๊ธฐ๋ฐ์ผ๋ก ์ธ๋ฑ์ฑํ๋ ๋ฐฉ์
- ํน์ ๋ฐ์ดํฐ ์ฐพ๊ธฐ ์ํ ์ฃผ์ ์ญํ ์ ํ๋ฉฐ, ๋น ๋ฅธ ๊ฒ์ ์ฑ๋ฅ ์ ๊ณต
- ๋ฑํธ ์ฐ์ฐ์์ ๊ฐ์ ์ผ์น ๊ฒ์์ ํจ๊ณผ์ ์ด๋ฉฐ, ๊ฒ์ ์๊ฐ์ด ์์์ ๊ฐ๊น๋ค.
- ์ฃผ์์ : ๋ฒ์ ๊ฒ์, ์ ๋ ฌ์ ์ ํฉํ์ง ์์. ์ถฉ๋ ๋ฐ์ ์ ์ฒ๋ฆฌ๋ฐฉ๋ฒ ํ์
10. ํด๋ฌ์คํฐ๋ง ์ธ๋ฑ์ค์ ๋ํด์ ์ค๋ช ํด์ฃผ์ธ์.
- ๊ฐ๋ : ์ฐ์๋ ํค ๊ฐ์ ๋ ์ฝ๋๋ฅผ ๋ฌถ์ด์ ๊ฐ์ ๋ธ๋ก์ ์ ์ฅํ๋ ๋ฐฉ๋ฒ
- ํ ์ด๋ธ ๋น ํ๊ฐ๋ง ์์ฑ ๊ฐ๋ฅ
- ์ฐ์ ์์
- PK
- ์ ๋ํฌ ํค
- row id ๊ธฐ๋ฐ ์ธ๋ฑ์ค
- ํด๋ฌ์คํฐ๋ง ์ธ๋ฑ์ค๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฐ์ดํฐ๊ฐ ์๋ ์ ๋ ฌ๋๋ค.
11. ์ธ๋ฑ์ค ์ค์บ ๋ฐฉ์์ ๋ํด์ ์ค๋ช ํด์ฃผ์ธ์.
- ์ธ๋ฑ์ค ์ค์บ ๋ฐฉ์์๋ Index Range Scan, Full Scan, Unique Scan ๋ฑ์ด ์๋ค.
- Index Range Scan: B-Tree ์ธ๋ฑ์ค์์ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์ ๊ทผ ๋ฐฉ์, ์ธ๋ฑ์ค์ ๋ฃจํธ๋ถํฐ ๋ฆฌํ ๋ธ๋ก๊น์ง ์์ง์ ์ผ๋ก ํ์ ํ, ํ์ ๋ฒ์๋งํผ ์ํ์ ์ผ๋ก ํ์ํ๋ค.
- ํน์ง: ํน์ ๋ฒ์์ ๋ํ ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ๊ฒ์ํ ์ ์๊ธฐ์, ํ์ํ ๋ถ๋ฌธ๋ง ๊ฒ์ํ ์ ์์ด ์ ์ฒด ๊ฒ์๋ณด๋ค ํจ์จ์ ์ด๋ค.
- Index Full Scan: ์์ง์ ํ์ ์์ด ์ธ๋ฑ์ค ๋ฆฌํ ๋ธ๋ก์ ์ฒ์๋ถํฐ ๋๊น์ง ์ํ์ ์ผ๋ก ํ์ํ๋ค.
- ํน์ง: ์์ ๋ฐ์ดํฐ๋ ์ ์ฒด ๋ฐ์ดํฐ ๊ฒ์ ์ ์ ์ฉํ๋ค.
- Unique Scan: ์์ง์ ํ์์ผ๋ก๋ง ๋ฐ์ดํฐ๋ฅผ ์ฐพ๋ ๋ฐฉ์.
- ํน์ง: ๋๋ฑ์กฐ๊ฑด์ผ๋ก ํ์ ์ ๋์, ๋ฒ์ ์กฐ๊ฑด ๊ฒ์ ์ Index Range Scan
12. ์ฟผ๋ฆฌ ์คํ ๊ณํ์ ๋ํด์ ์ค๋ช ํด์ฃผ์ธ์. ์คํ ๊ณํ์ ํ์ธํด๋ณธ์ ์ด ์๋์?
- ๊ฐ๋ : DBMS๊ฐ ์ฟผ๋ฆฌ๋ฅผ ์คํํ๊ธฐ ์ํด ์ ํํ ๋ฐฉ๋ฒ๊ณผ ์์์ ๋ํ ๊ณํ
- ์คํ ๊ณํ์ ํ์ธํ๋ฉด ์ฟผ๋ฆฌ๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ด๋ป๊ฒ ์คํ๋๋์ง EXPLAIN ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋ณผ ์ ์๋ค.
- ์ฅ์ : ์ฑ๋ฅ ๋ฌธ์ ์๋ณ ๊ฐ๋ฅ
13. ํํธ์ ๋ํด์ ์ค๋ช ํด์ฃผ์ธ์.
- ๊ฐ๋ : ์ฟผ๋ฆฌ ์ตํฐ๋ง์ด์ ๊ฐ ์ฟผ๋ฆฌ๋ฅผ ์คํํ๋ ๋ฐฉ๋ฒ์ ์ ์ดํ ์ ์๋ ์ง์์ด
- ํํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ธ๋ฑ์ค ์ฌ์ฉ, ์กฐ์ธ ์์ ๋ฑ์ ๊ฐ์ ํ ์ ์๋ค.
- ์ค๋ผํด์ด ํญ์ ์ต์ ์ ์คํ ๊ฒฝ๋ก๋ฅผ ๋ง๋๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํ๊ธฐ์ ์ง์ ์ต์ ์ ์คํ ๊ฒฝ๋ก๋ฅผ ์์ฑํ๋ ๊ฒ์ด๋ค.
14. ์ธ๋ฑ์ค๊ฐ ์ ๋์ํ๊ณ ์๋์ง ์ด๋ป๊ฒ ํ์ธํ ์ ์์๊น์?
- ์คํ ๊ณํ ํ์ธ: EXPLAIN ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ธ๋ฑ์ค๊ฐ ์ฌ์ฉ๋๊ณ ์๋์ง ํ์ธ
- ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง: ์ฟผ๋ฆฌ ์ฑ๋ฅ์ด ํฅ์๋์๋์ง ํ์ธ
15. ์ธ๋ฑ์ค ์ฌ์ฉ์ ์ฃผ์ํด์ผํ ์ ์ ๋ํด์ ์๋ ค์ฃผ์ธ์.
- ๊ณผ๋ํ ์ธ๋ฑ์ค: ๋๋ฌด ๋ง์ ์ธ๋ฑ์ค๋ ์ฐ๊ธฐ ์ฑ๋ฅ์ ์ ํ์ํฌ ์ ์๋ค.
- ์ธ๋ฑ์ค ์ ์ง: ๋ฐ์ดํฐ์ ๋ณ๊ฒฝ ์ ์ธ๋ฑ์ค๊ฐ ์ ์ ์ง๋๊ณ ์๋์ง ํ์ธํด์ผ ํ๋ค.
- ์ ์ ํ ์ธ๋ฑ์ค ์ ํ: ์ฟผ๋ฆฌ ํจํด์ ๋ง๋ ์ธ๋ฑ์ค๋ฅผ ์ ํํด์ผ ํ๋ค.
16. GROUP BY ์ฌ์ฉ์ ์ธ๋ฑ์ค๊ฐ ๊ฑธ๋ฆฌ๋ ์กฐ๊ฑด์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์.
- ์ธ๋ฑ์ค ์นผ๋ผ์ ์์์ GROUP BY์ ์ ์์๊ฐ ๊ฐ์์ผ ํ๋ค.
- GROUP BY์ ํฌํจ๋ ์ด์ด ์ธ๋ฑ์ค์ ๊ฐ์ฅ ์์ ์๋ ์ด์ด์ด์ผ ํ๋ค.
17. ์ด๋ฆ, ๊ตญ๊ฐ, ์ฑ๋ณ์ด ์๋ ํ ์ด๋ธ์์ ์ธ๋ฑ์ค๋ฅผ ์ด๋ป๊ฒ ๊ฑธ์ด์ผํ ๊น์?
- ์ธ๋ฑ์ค ์ค์ ์ ์นด๋๋๋ฆฌํฐ๊ฐ ๋์ ์นผ๋ผ์ ์ ํํ๋ ๊ฒ์ด ์ข๋ค.
- ๋จ์ผ ์ปฌ๋ผ ์ธ๋ฑ์ค: ์นด๋๋๋ฆฌํฐ๊ฐ ๋์ ๊ฒ ๋ถํฐ ์ ํํ์ฌ ์ด๋ฆ -> ๊ตญ๊ฐ -> ์ฑ๋ณ ์์ผ๋ก ์ค์
- ๋ค์ค ์ปฌ๋ผ ์ธ๋ฑ์ค: ์กฐํฉ๋ ๊ฒ์ ์กฐ๊ฑด์ด ์์ฃผ ์ฌ์ฉ๋๋ค๋ฉด, ํด๋น ์กฐํฉ์ ๋ํด ์ธ๋ฑ์ค๋ฅผ ์ค์
๋ฉด์ ํผ๋๋ฐฑ
์ข์ ์
- ๊ณ ๋ฏผ ๋ ๋ ์ฒ์ฒํ ์๊ฐํ๋ค๊ฐ ๋งํ๋ ๋ชจ์ต์ด ์ข๋ค
๋ถ์กฑํ ์
- ๋ต๋ณ์ ์ํ๋๋ฐ, ์์ ์๊ฒ ํ์
- ์ฒ์์ ํค๊ฐ๋ฆฌ๋ ๋ด์ฉ์ด ๋์ฌ ๋ ํ๋ฐ๋ฅ์ ๋ด๋ฐ์๋ ์ ์ด ๋ง์ฝ ์ต๊ด์ด๋ผ๋ฉด ์ ์์ ๋ฃ์ด๋๋ ๊ฒ์ด ์ข์ ๊ฒ ๊ฐ๋ค.
- ๊ธฐ์ ๋ฉด์ ๋ต์ ํ ๋ ๋ช ํํ๊ฒ ๋ต์ ํ๋ ค๊ณ ํ๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค.
- ์ข ๋ ์งง๊ฒ ๋ต์ ํ๊ณ ์ถ๊ฐ ์ง๋ฌธ์ด ๋ค์ด์ค๊ฒ ๋ต์ ํ๋ ์ชฝ์ผ๋ก ํด๋ณด์.
๋ฉํ ๋ ์ฝ๋งจํธ
- "๋ฉด์ ๊ด๋ ์ฌ๋์ด๊ธฐ์ ์ง๋ฌธ์ ๋ํ ๋๋ตํ ๋ ์ด๋งํผ์ ์๊ณ , ์ด๋งํผ์ ์ ํํ๊ฒ ๋ชจ๋ฅด๋๋ฐ ์ฌ๊ธฐ์ ๋ํด ์๋๋งํผ ์ค๋ช ๋๋ฆฌ๊ฒ ์ต๋๋ค." ๋ผ๊ณ ํ๋๊ฒ๋ ๊ด์ฐฎ๋ค.
'๐ปโโ๏ธ์ ๊ณต๊ณต๋ถ > ๋ฐ์ดํฐ๋ฒ ์ด์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐ์ดํฐ๋ฒ ์ด์ค 5์ฃผ์ฐจ ์คํฐ๋ ์ ๋ฆฌ (0) | 2024.09.09 |
---|---|
๋ฐ์ดํฐ๋ฒ ์ด์ค 4์ฃผ์ฐจ ์คํฐ๋ ์ ๋ฆฌ (1) | 2024.09.02 |
๋ฐ์ดํฐ๋ฒ ์ด์ค 2์ฃผ์ฐจ ์คํฐ๋ ์ ๋ฆฌ (0) | 2024.08.21 |
๋ฐ์ดํฐ๋ฒ ์ด์ค 1์ฃผ์ฐจ ์คํฐ๋ ์ ๋ฆฌ (0) | 2024.08.14 |