Computer Science/๐พ Database
[DB] ์ธ๋ฑ์ค(Index) ๊ฐ๋ , ์ฅ๋จ์ , ์ ๋ต, ๊ตฌ์กฐ
J1Yun
2023. 3. 20. 16:33
728x90
์ธ๋ฑ์ค(Index)
- ์ฑ ์ '์์ธ'๊ณผ ๊ฐ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด ๋ฐ์ดํฐ ๊ฒ์ ์ฑ๋ฅ์ ๋์ด๊ธฐ ์ํด ์ฌ์ฉํ๋ ์๋ฃ ๊ตฌ์กฐ
- ํน์ ์นผ๋ผ์ ์ธ๋ฑ์ค๋ฅผ ์์ฑํ๋ฉด, ํด๋น ์นผ๋ผ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฌํ์ฌ ๋ณ๋์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๋ฐ์ดํฐ์ ๋ฌผ๋ฆฌ์ ์ฃผ์์ ํจ๊ป ์ ์ฅ
- ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ๋ ์ฟผ๋ฆฌ๋ฅผ ์คํํ๋ฉด ์ตํฐ๋ง์ด์ ๋ ์ธ๋ฑ์ค์ ์ ์ฅ๋์ด ์๋ ๋ฐ์ดํฐ์ ๋ฌผ๋ฆฌ ์ฃผ์๋ฅผ ์ฐธ์กฐํ๋ฉด์ ๊ฒ์ ์๋ ํฅ์
- ์ธ๋ฑ์ค ์์ฑ ์ ๋ฐ์ดํฐ๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ
์ฅ์
- ๊ฒ์ ์กฐ๊ฑด WHERE ์ ์์์ ํจ์จ์ฑ
- ์ธ๋ฑ์ค๋ฅผ ์ค์ ํ์ง ์์ผ๋ฉด ๋ค์ฃฝ๋ฐ์ฃฝ ์์ฌ์๋ ๋ฐ์ดํฐ ์ค ๊ฒ์์ ํ๋ ค๋ฉด ํ ์ค์บ(Full Scan)์ ํด์ผํจ
- ์ธ๋ฑ์ค ํ ์ด๋ธ์ ๋ฐ์ดํฐ๋ค์ด ์ ๋ ฌ๋์ด ์ ์ฅ๋์ด ์๊ธฐ ๋๋ฌธ์ ์กฐ๊ฑด(WHERE์ )์ ๋ง๋ ๋ฐ์ดํฐ๋ฅผ ๋น ๋ฅด๊ฒ ์ฐพ์ ์ ์์
- ์ ๋ ฌ ORDER BY ์ ์์์ ํจ์จ์ฑ
- ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๋ฏธ ์ ๋ ฌ๋์ด ์๊ธฐ ๋๋ฌธ์ ORDER BY์ ์ํ ์ ๋ ฌ ๊ณผ์ ์ ํผํ ์ ์์ด ์์คํ ๋ถํ๋ฅผ ์ค์ผ ์ ์์
- MIN๊ณผ MAX์ ์ฒ๋ฆฌ ํจ์จ์ฑ
- ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐ์ดํฐ๊ฐ ์ ๋ ฌ๋์ด ์๊ธฐ ๋๋ฌธ์ MIN๊ฐ๊ณผ MAX๊ฐ์ ๊ฐ๊ฐ ์์ ๊ฐ๊ณผ ๋ ๊ฐ์ ์๋ฏธํ์ฌ ํ ์ค์บ(Full Scan)์ผ๋ก ์ฒ๋ฆฌํ๋ ๊ฒ๋ณด๋ค ํจ์จ์ ์ผ๋ก ๋์
๋จ์
- ์ธ๋ฑ์ค๋ฅผ ์ํ ์ถ๊ฐ ์ ์ฅ ๊ณต๊ฐ ํ์
- ์ธ๋ฑ์ค๋ฅผ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๊ธฐ ์ํด์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฝ 10%์ ํด๋นํ๋ ์ ์ฅ ๊ณต๊ฐ์ด ์ถ๊ฐ๋ก ํ์ํจ
- DML(INSERT, UPDATE, DELETE) ๋ช
๋ น์ ์ทจ์ฝ
- INSERT, UPDATE, DELETE ๋ฑ DML ๋ช ๋ น์ด๋ฅผ ์คํํ๋ฉด ์ธ๋ฑ์ค ํ ์ด๋ธ ๋ด ๋ฐ์ดํฐ๋ฅผ ๋ค์ ์ ๋ ฌํ๋ ๊ณผ์ ์ด ํ์ํจ
- ์๋ณธ ํ ์ด๋ธ ๋ฟ๋ง ์๋๋ผ ์ธ๋ฑ์ค ํ ์ด๋ธ ๋ํ ์ฝ์ /์์ /์ญ์ ๋ฅผ ๋ฐ์ํด์ผํ๋ฏ๋ก DML์ด ๋น๋ฒํ๊ฒ ๋ฐ์ํ๋ฉด ๋ถํ ๋ฐ์
- ์๋ชป ์ฌ์ฉํ ๊ฒฝ์ฐ ์คํ๋ ค ์ฑ๋ฅ ์ ํ
- ํ ์ด๋ธ์ ์ ์ฒด ๋ฐ์ดํฐ ์ค์์ 10~15% ์ดํ์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๊ฒฝ์ฐ ์ฆ, ํ ์ด๋ธ์ ๋ฐ์ดํฐ๊ฐ ๋ง์ ๊ฒฝ์ฐ์๋ง ํจ๊ณผ์
- ๋ฐ์ดํฐ๊ฐ ์ ์ ๋๋ ์ธ๋ฑ์ค๊ฐ ๊ดํ ์ ์ฅ ๊ณต๊ฐ๋ง ์ฐจ์งํ ๋ฟ ํ ์ค์บ์ด ๋์ฑ ๋น ๋ฅด๊ฒ ๋์
์ธ๋ฑ์ค ์์ฑ ์ ๋ต
- ๋ฐ์ดํฐ์ ์ฝ์ /์์ /์ญ์ ์์ ์ด ๋ง์ด ์ผ์ด๋์ง ์๊ณ ๋ฐ์ดํฐ ์กฐํ ๋ฐ ๊ฒ์ ์์ ์ด ๋น๋ฒํ ์ผ์ด๋๋ ํ ์ด๋ธ
- ์กฐ๊ฑด ์ ์ ์์ฃผ ๋ฑ์ฅํ๋ ์นผ๋ผ
- ์กฐ๊ฑด ์ ์์=(๊ฐ์) ์ฐ์ฐ์๋ก ๋น๊ต๋๋ ์นผ๋ผ
- ORDER BY ์ ์์ ์ ๋ ฌ์ ๊ธฐ์ค์ผ๋ก ์ฐ์ด๋ ์นผ๋ผ
- ์ค๋ณต ๋ฐ์ดํฐ ๋ฐ์ ํ๋ฅ ์ด ์ต์์ธ ์นผ๋ผ
- JOIN ์กฐ๊ฑด์ผ๋ก ์์ฃผ ์ฌ์ฉ๋๋ ์นผ๋ผ
์ธ๋ฑ์ค ๊ตฌ์กฐ
1. B-Tree ์ธ๋ฑ์ค
- ํ์ ์ฑ๋ฅ์ ๋์ด๊ธฐ ์ํด ๊ท ํ ์๊ฒ ๋์ด๋ฅผ ์ ์งํ๋ Balanced Tree์ ์ผ์ข
- ๋ชจ๋ ๋ฆฌํ ๋ ธ๋๋ค์ ๊ฐ์ ๋ ๋ฒจ์ ์์ด์ผ ํจ
- ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฌ๋ ์์๋ก ์ ์ฅํ๋ฉฐ ๋ ธ๋์ ๊ท ํ์ ์ ์งํด ๊ฒ์๊ณผ ์ฝ์ , ์ญ์ ์์ ์ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํ ์ ์์
- ๋ ธ๋๋ ํค์ ์์ ๋ ธ๋๋ฅผ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ์ ์์ผ๋ก ์ด๋ฃจ์ด์ง๋ฉฐ ๊ฐ ๋ ธ๋๋ ์ฌ๋ฌ ๊ฐ์ ํค๋ฅผ ๊ฐ์ง ์ ์์
2. B+Tree ์ธ๋ฑ์ค
- B-Tree์ ๋ณํ์ผ๋ก B-Tree๋ ํน์ ๋ฐ์ดํฐ ๊ฒ์์ ํจ์จ์ ์ด์ง๋ง ๋ฐ์ดํฐ ์ํ ์ ๋ชจ๋ ๋ ธ๋๋ฅผ ๋ฐฉ๋ฌธํด์ผ ํ๋ค๋ ๋จ์ ๊ฐ์
- ๋ฆฌํ ๋ ธ๋์๋ง ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ, ๋ค๋ฅธ ๋ ธ๋์์๋ ์์ ๋ ธ๋๋ฅผ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ๋ง ์ ์ฅ
- ๋ฆฌํ ๋ ธ๋๋ผ๋ฆฌ๋ ์ฐ๊ฒฐ๋ฆฌ์คํธ(Linked List)๋ก ์ฐ๊ฒฐ
- ๋ฆฌํ ๋ ธ๋๋ฅผ ์ ์ธํ๊ณ ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ์ง ์๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ ํ๋ณดํ์ฌ ๋ ๋ง์ ํฌ์ธํฐ๋ฅผ ๋ด์ ์ ์์ด ๊ฒ์ ์๋ ํฅ์
- ํ ์ค์บ์ ํ๋ ๊ฒฝ์ฐ ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ก ์ฐ๊ฒฐ๋์ด ์๋ ๋ฆฌํ ๋ ธ๋๋ง ์ํํ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ํจ์จ์
- ์ธ๋ฑ์ค์ ๊ฒฝ์ฐ ๋ถ๋ฑํธ๋ฅผ ์ด์ฉํ ์์ฐจ ๊ฒ์ ์ฐ์ฐ์ด ์์ฃผ ๋ฐ์ํ๋ฏ๋ก B+Tree๋ฅผ ์ฃผ๋ก ์ฌ์ฉ
3. ํด์ ํ ์ด๋ธ(Hash Table)
- key์ value๋ฅผ ํ ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ์๋ฃ๊ตฌ์กฐ
- ํด์ ํจ์๋ ๊ฐ์ด ์กฐ๊ธ์ด๋ผ๋ ๋ฌ๋ผ์ง๋ฉด ์์ ํ ๋ค๋ฅธ ํด์ ๊ฐ์ ์์ฑํด ๋ฑํธ(=) ์ฐ์ฐ์ ์ด์ฉํ ๊ฒ์์ ์ต์ ํ ๋์ด ์์
- ๋ถ๋ฑํธ(<, >) ์ฐ์ฐ์ด ์์ฃผ ์ฌ์ฉ๋๋ ๊ฒ์์ ์ํด์๋ ์ ํฉํ์ง ์์
โญ๏ธ ์ฐธ๊ณ
728x90