Indexing - Suja-dot/Database GitHub Wiki
Index?
- ์ถ๊ฐ์ ์ธ ์ฐ๊ธฐ ์์
๊ณผ ์ ์ฅ ๊ณต๊ฐ์ ํ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ
์ด๋ธ์ ๊ฒ์ ์๋๋ฅผ ํฅ์์ํค๊ธฐ ์ํ ์๋ฃ๊ตฌ์กฐ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค์์๋ ํ
์ด๋ธ์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ๋ฉด ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ์ ๋ฐ์ดํฐ์ ์์น๋ฅผ ํฌํจํ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์์ฑํ์ฌ ๋น ๋ฅด๊ฒ ์กฐํ๊ฐ ๊ฐ๋ฅ
- SELECT, UPDATE, DELETE์ ์ฑ๋ฅ์ด ํจ๊ป ํฅ์๋จ (์ ์ฐ์ฐ๋ค์ ์ํํ๋ ค๋ฉด ํด๋น ๋์์ ์กฐํํด์ผ๋ง ์์
์ด ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์)
- e.g. ์ฑ
์ ์์ธ
Index ๊ด๋ฆฌ
- Index๋ ํญ์ ์ต์ ์ ์ ๋ ฌ๋ ์ํ๋ฅผ ์ ์งํด์ผ ์ํ๋ ๊ฐ์ ๋น ๋ฅด๊ฒ ํ์ ๊ฐ๋ฅ
- Index๊ฐ ์ ์ฉ๋ ์ปฌ๋ผ์ INSERT, DELETE, UPDATE๊ฐ ์ํ๋๋ค๋ฉด ๊ฐ๊ฐ ๋ค์๊ณผ ๊ฐ์ ์ฐ์ฐ์ ์ถ๊ฐ์ ์ผ๋ก ํด์ฃผ์ด์ผ ํจ(์ค๋ฒํค๋ ๋ฐ์)
- INSERT : ์๋ก์ด ๋ฐ์ดํฐ์ ๋ํ ์ธ๋ฑ์ค ์ถ๊ฐ
- DELETE : ์ญ์ ํ๋ ๋ฐ์ดํฐ์ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค๋ ์์
์งํ
- UPDATE : ๊ธฐ์กด์ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ์ง ์์ ์ฒ๋ฆฌ, ๊ฐฑ์ ๋ ๋ฐ์ดํฐ์ ๋ํ ์ธ๋ฑ์ค ์ถ๊ฐ
INDEX ์ฅ์
- ํ
์ด๋ธ์ ์กฐํํ๋ ์๋์ ๊ทธ์ ๋ฐ๋ฅธ ์ฑ๋ฅํฅ์
- ์ ๋ฐ์ ์ธ ์์คํ
๋ถํ ๊ฐ์
- e.g. ๊ท๋ชจ๊ฐ ์์ง ์์ ํ
์ด๋ธ, INSERT, UPDATE, DELETE๊ฐ ์์ฃผ ๋ฐ์ํ์ง ์๋ ์ปฌ๋ผ, JOIN์ด๋ WHERE๋๋ ORDER BYE์ ์์ฃผ ์ฌ์ฉ๋๋ ์ปฌ๋ผ, ๋ฐ์ดํฐ์ ์ค๋ณต๋๊ฐ ๋ฎ์ ์ปฌ๋ผ์์ ์ฌ์ฉ๋๋ฉด ์ข์
INDEX ๋จ์
- INDEX๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํด์ DB์ ๋ณ๋๋ก ์ฝ 10%์ ํด๋นํ๋ ์ ์ฅ๊ณต๊ฐ์ด ํ์
- ์ธ๋ฑ์ค๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํด ์ถ๊ฐ ์์
์ด ํ์
- ์ธ๋ฑ์ค๋ฅผ ์๋ชป ์ฌ์ฉํ ๊ฒฝ์ฐ ์คํ๋ ค ์ฑ๋ฅ ์ ํ๋๋ ์ญํจ๊ณผ ๋ฐ์
- e.g. CREATE, DELETE, UPDATE๊ฐ ๋น๋ฒํ ์์ฑ์ ์ธ๋ฑ์ค๋ฅผ ๊ฑธ๊ฒ ๋๋ฉด ์ธ๋ฑ์ค์ ํฌ๊ธฐ๊ฐ ๋น๋ํด์ ธ์ ์ฑ๋ฅ์ด ์คํ๋ ค ์ ํ๋๋ ์ญํจ๊ณผ ๋ฐ์(DELETE์ UPDATE ์ฐ์ฐ์ ์ธ๋ฑ์ค๋ฅผ ์ญ์ ํ๋๊ฒ ์๋๋ผ ์ฌ์ฉํ์ง ์์ ์ฒ๋ฆฌ๋ฅผ ํด์ฃผ๊ธฐ ๋๋ฌธ)
INDEX์ ์๋ฃ๊ตฌ์กฐ
Hash Table
- ๋ฐ์ดํฐ, ๋ฐ์ดํฐ์ ์์น๋ฅผ Key, Value๋ก ์ฌ์ฉํ์ฌ ์ปฌ๋ผ์ ๊ฐ์ผ๋ก ์์ฑ๋ ํด์๋ฅผ ํตํด ์ธ๋ฑ์ค ๊ตฌํ
- ์๊ฐ๋ณต์ก๋ O(1)
- ํด์๋ ๋ฑํธ(=)์ฐ์ฐ์๋ง ํนํ๋์๊ธฐ ๋๋ฌธ์ ๊ฐ์ด 1์ด๋ผ๋ ๋ฌ๋ผ์ง๋ง ์์ ํ ๋ค๋ฅธ ํด์๊ฐ์ ์์ฑํ๋๋ฐ, ์ด๋ฌํ ํน์ฑ์ ์ํด ๋ถ๋ฑํธ ์ฐ์ฐ(>,<)์ด ์์ฃผ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ ๋ฒ ์ด์ค ๊ฒ์์ ์ํด์๋ ์ ํฉํ์ง ์์
- ์ด๋ฌํ ์ด์ ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ธ๋ฑ์ค์์๋ B+ Tree๊ฐ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋จ
- e.g. "์ค๋"์ผ๋ก ์์ํ๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ๊ธฐ ์ํ ์ฟผ๋ฆฌ๋ฌธ์ ์ธ๋ฑ์ค์ ํํ์ ์ ํ ๋ฐ์ง ๋ชปํจ
B+ Tree
- ๋ฆฌํ๋
ธ๋๋ง ์ธ๋ฑ์ค์ ํจ๊ป ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์๊ณ , ๋๋จธ์ง ๋
ธ๋๋ค์ ๋ฐ์ดํฐ๋ฅผ ์ํ ์ธ๋ฑ์ค ๋ง์ ๊ฐ๋ ๊ตฌ์กฐ
- ๋ฆฌํ ๋
ธ๋๋ค์ LinkedList๋ก ์ฐ๊ฒฐ๋์ด์์
- ๋ฐ์ดํฐ ๋
ธ๋ ํฌ๊ธฐ๋ ์ธ๋ฑ์ค ๋
ธ๋์ ํฌ๊ธฐ์ ๊ฐ์ง ์์๋ ๋๋ค
- ์๊ฐ๋ณต์ก๋ O(log2N)