Index
์ธ๋ฑ์ค์ ๋ํด์ ์ค๋ช
ํด ์ฃผ์ธ์.
์ธ๋ฑ์ค(
Index) ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ ์ด๋ธ์ ๋ํ ๊ฒ์ ์๋๋ฅผ ํฅ์์์ผ์ฃผ๋ ์๋ฃ๊ตฌ์กฐ์ด๋ค.ํ ์ด๋ธ์ ํน์ ์ปฌ๋ผ์ ์ธ๋ฑ์ค๋ฅผ ์์ฑํ๋ฉด, ํด๋น ์ปฌ๋ผ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฌํ ํ ๋ณ๋์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๋ฐ์ดํฐ์ ๋ฌผ๋ฆฌ์ ์ฃผ์์ ํจ๊ป ์ ์ฅ๋๋ค.
์ปฌ๋ผ์ ๊ฐ๊ณผ ๋ฌผ๋ฆฌ์ ์ฃผ์๋ฅผ
(Key, Value)์ ํ ์์ผ๋ก ์ ์ฅํ๋ค.
ํด๋ฌ์คํฐํ ์ธ๋ฑ์ค
์์ด์ฌ์ ์ฒ๋ผ ์ด๋ฏธ ์ ๋ ฌ๋์ด ์๋ ์ธ๋ฑ์ค
๊ธฐ๋ณธ ํค๋ก ์ง์ ํ๋ฉด ํด๋ฌ์คํฐํ ์ธ๋ฑ์ค๊ฐ ์์ฑ๋๊ณ ํด๋น ์ด๋ก ์๋ ์ ๋ ฌ๋๋ค.
๋ณด์กฐ ์ธ๋ฑ์ค
์ผ๋ฐ ์ฑ ์ ์ฐพ์๋ณด๊ธฐ์ ๊ฐ์ด ๋ณ๋์ ๊ณต๊ฐ์ ์ธ๋ฑ์ค๊ฐ ์์ฑ๋๋ค.
๊ณ ์ ํค๋ก ์ง์ ํ๋ฉด ๋ณด์กฐ ์ธ๋ฑ์ค๊ฐ ์์ฑ๋๊ณ ์๋ ์ ๋ ฌ๋์ง ์๋๋ค.
๊ณ ์ ์ธ๋ฑ์ค
๊ฐ์ด ์ค๋ณต๋์ง ์๋ ์ธ๋ฑ์ค
๊ธฐ๋ณธ ํค๋ ๊ณ ์ ํค๋ก ์ง์ ํ๋ฉด ๊ฐ์ด ์ค๋ณต๋์ง ์์ผ๋ฏ๋ก ๊ณ ์ ์ธ๋ฑ์ค๊ฐ ์๋ ์์ฑ๋๋ค.
์๋ฌธ
Clustered Index
Secondary Index
๊ด๋ จ ์ ์ฝ์กฐ๊ฑด
๊ธฐ๋ณธ ํค(Primary Key)
๊ณ ์ ํค(Unique)
ํ ์ด๋ธ๋น ๊ฐ์
1๊ฐ
์ฌ๋ฌ ๊ฐ
์ ๋ ฌ
์ง์ ํ ์ด๋ก ์ ๋ ฌ๋จ
์ ๋ ฌ๋์ง ์์
์ธ๋ฑ์ค ์ฅ์
SELECT๋ฌธ์ผ๋ก ๊ฒ์ํ๋ ์๋๊ฐ ๋งค์ฐ ๋นจ๋ผ์ง๋ค.์ปดํจํฐ์ ๋ถ๋ด์ด ์ค์ด๋ค์ด ๊ฒฐ๊ตญ ์ ์ฒด ์์คํ ์ ์ฑ๋ฅ์ด ํฅ์๋๋ค.
์ธ๋ฑ์ค ๋จ์
์ธ๋ฑ์ค๋ ๊ณต๊ฐ์ ์ฐจ์งํด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ ์ถ๊ฐ์ ์ธ ๊ณต๊ฐ์ด ํ์ํ๋ค.
๋๋ต ํ ์ด๋ธ ํฌ๊ธฐ์ 10% ์ ๋
์ฒ์์ ์ธ๋ฑ์ค๋ฅผ ๋ง๋๋ ๋ฐ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆด ์ ์๋ค.
SELECT๊ฐ ์๋ ๋ฐ์ดํฐ์ ๋ณ๊ฒฝ ์์ (INSERT,UPDATE,DELETE)์ด ์์ฃผ ์ผ์ด๋๋ฉด ์คํ๋ ค ์ฑ๋ฅ์ด ๋๋น ์ง ์ ์๋ค.
์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ๋ฉด ์ข์ ๊ฒฝ์ฐ
๊ท๋ชจ๊ฐ ์์ง ์์ ํ ์ด๋ธ
INSERT,UPDATE,DELETE๊ฐ ์์ฃผ ๋ฐ์ํ์ง ์๋ ์ปฌ๋ผ(๋ฐ์ดํฐ์ ๋ณ๊ฒฝ)JOIN์ด๋WHERE๋๋ORDER BY์ ์์ฃผ ์ฌ์ฉ๋๋ ์ปฌ๋ผ๋ฐ์ดํฐ์ ์ค๋ณต๋๊ฐ ๋ฎ์ ์ปฌ๋ผ
์ธ๋ฑ์ค๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ
WHERE ์ ์์ ์ฌ์ฉ๋๋ ์ด์ ์ธ๋ฑ์ค๋ฅผ ๋ง๋ค์ด์ผ ํ๋ค.
SELECT๋ฌธ์ ์ฌ์ฉํ ๋,WHERE์ ์ ์กฐ๊ฑด์ ํด๋น ์ด์ด ๋์์ผ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ๋ค.WHERE์ ์กฐ๊ฑด์ ๋์ค๋ ์ด ์ธ์ ์ธ๋ฑ์ค๋ฅผ ๋ง๋๋ ๊ฒ์ ๋ญ๋น๊ฐ ๋๋ค.
WHERE ์ ์ ์ฌ์ฉ๋๋๋ผ๋ ์์ฃผ ์ฌ์ฉํด์ผ ๊ฐ์น๊ฐ ์๋ค.
์ธ๋ฑ์ค๋
SELECT๋ฌธ์ ์ฑ๋ฅ์ ์ข์์ง์ง๋ง, ๋ฐ์ดํฐ์ ๋ณ๊ฒฝ์ด ์ผ์ด๋๋ ์์ ์ ์คํ๋ ค ์ฑ๋ฅ์ด ๋๋น ์ง ์ ์๋ค.SELECT๋ฌธ์ด ์์ฃผ ์ฌ์ฉ๋์ง ์๋๋ค๋ฉด ์ฐจ๋ผ๋ฆฌ ํ ๋ฒ ์กฐํํ ๋ ์ธ๋ฑ์ค ์์ด ์กฐํํ๋ ๋ฐฉ๋ฒ์ด ๋ ๋ซ๋ค.
๋ฐ์ดํฐ์ ์ค๋ณต์ด ๋์ ์ด์ ์ธ๋ฑ์ค๋ฅผ ๋ง๋ค์ด๋ ๋ณ ํจ๊ณผ๊ฐ ์๋ค.
์ด์ ๋ค์ด๊ฐ ๋ฐ์ดํฐ์ ์ข ๋ฅ๊ฐ ๋ช ๊ฐ์ง ์ ๋๋ฉด ์ธ๋ฑ์ค๊ฐ ํฐ ํจ๊ณผ๋ฅผ ๋ด์ง ๋ชปํ๋ค.
์ฑ๋ณ, ๊ตํต ์๋จ ๋ฑ ์ข ๋ฅ๊ฐ ์ ํ๋ ๊ฒ์๋ ์ธ๋ฑ์ค๋ฅผ ๋ง๋ค์ด๋ ํจ๊ณผ๊ฐ ์๋ค.
ํด๋ฌ์คํฐํ ์ธ๋ฑ์ค๋ ํ
์ด๋ธ๋น ํ๋๋ง ์์ฑํ ์ ์๋ค.
ํด๋ฌ์คํฐํ ์ธ๋ฑ์ค๋ ๋ฐ์ดํฐ ํ์ด์ง๋ฅผ ์ฝ๋ ์๊ฐ ๋ณด์กฐ ์ธ๋ฑ์ค๋ณด๋ค ์ ๊ธฐ ๋๋ฌธ์ ์ฑ๋ฅ์ด ๋ ์ฐ์ํ๋ค.
๊ทธ๋ฌ๋ฏ๋ก ํ๋๋ฐ์ ์ง์ ํ์ง ๋ชปํ๋ ํด๋ฌ์คํฐํ ์ธ๋ฑ์ค(๊ธฐ๋ณธ ํค)๋ ์กฐํํ ๋ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ์ด์ ์ง์ ํ๋ ๊ฒ์ด ํจ๊ณผ์ ์ด๋ค.
์ฌ์ฉํ์ง ์๋ ์ธ๋ฑ์ค๋ ์ ๊ฑฐํ๋ค.
์ฌ์ฉ๋๋ SQL์ ๋ถ์ํด์
WHERE์กฐ๊ฑด์์ ์ฌ์ฉ๋์ง ์๋ ์ด์ ์ธ๋ฑ์ค๋ ์ ๊ฑฐํ ํ์๊ฐ ์๋ค.๊ทธ๋ฌ๋ฉด ๊ณต๊ฐ์ ํ๋ณดํ ๋ฟ ์๋๋ผ, ๋ฐ์ดํฐ ์ ๋ ฅ ์ ๋ฐ์๋๋ ๋ถํ๋ ๋ง์ด ์ค์ผ ์ ์๋ค.
์ธ๋ฑ์ค์ ์๊ณ ๋ฆฌ์ฆ์๋ ์ด๋ค ๊ฒ๋ค์ด ์๋์?
์ธ๋ฑ์ค๋ ์ฌ๋ฌ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ด์ฉํด์ ๊ตฌํํ ์ ์๋๋ฐ, ๋ํ์ ์ผ๋ก ํด์ ํ ์ด๋ธ๊ณผ B+Tree๊ฐ ์๋ค.
ํด์ ํ
์ด๋ธ(Hash Table)
ํด์ ํ ์ด๋ธ์
(Key, Value)๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ์๋ฃ๊ตฌ์กฐ ์ค ํ๋๋ก ๋น ๋ฅธ ๋ฐ์ดํฐ ๊ฒ์์ด ํ์ํ ๋ ์ ์ฉํ๋ค.Key๊ฐ์ ์ด์ฉํด ๋์๋๋Value๊ฐ์ ๊ตฌํ๋ ๋ฐฉ์์ด๋ค.ํด์์ถฉ๋์ด๋ผ๋ ๋ณ์๊ฐ ์กด์ฌํ์ง๋ง ํ๊ท ์ ์ผ๋ก
O(1)์ ๋งค์ฐ ๋น ๋ฅธ ์๊ฐ๋ง์ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ํ์ํ ์ ์๋ ๊ตฌ์กฐ์ด๋ค.ํด์ ํ ์ด๋ธ์ ์ด์ฉํ๋ค๋ฉด ์ธ๋ฑ์ค๋
(key, value)=(์ปฌ๋ผ์ ๊ฐ, ๋ฐ์ดํฐ์ ์์น)๋ก ๊ตฌํํ๋๋ฐ, ํด์ ํ ์ด๋ธ์ ์ค์ ๋ก ์ธ๋ฑ์ค์์ ์ ์ฌ์ฉ๋์ง ์๋๋ค.์๋ํ๋ฉด ํด์ ํ ์ด๋ธ์ ๋ฑํธ(
=) ์ฐ์ฐ์ ์ต์ ํ๋์ด ์๊ธฐ ๋๋ฌธ์ด๋ค.๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ถ๋ฑํธ(
< , >) ์ฐ์ฐ์ด ์์ฃผ ์ฌ์ฉ๋๋๋ฐ, ํด์ ํ ์ด๋ธ ๋ด์ ๋ฐ์ดํฐ๋ค์ ์ ๋ ฌ๋์ด ์์ง ์์ผ๋ฏ๋ก ํน์ ๊ธฐ์ค๋ณด๋ค ํฌ๊ฑฐ๋ ์์ ๊ฐ์ ๋น ๋ฅด๊ฒ ์ฐพ์ ์๊ฐ ์๋ค.
B+ Tree
B+ Tree๋ DB์ ์ธ๋ฑ์ค๋ฅผ ์ํด ์์ ๋ ธ๋๊ฐ 2๊ฐ ์ด์์ธ
B-Tree๋ฅผ ๊ฐ์ ์ํจ ์๋ฃ๊ตฌ์กฐ์ด๋ค.๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ธ๋ฑ์ค ์ปฌ๋ผ์ ๋ถ๋ฑํธ๋ฅผ ์ด์ฉํ ์์ฐจ ๊ฒ์ ์ฐ์ฐ์ด ์์ฃผ ๋ฐ์๋ ์ ์๋ค.
๋๋ฌธ์
B-Tree์ ๋ฆฌํ๋ ธ๋๋ค์ ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ก ์ฐ๊ฒฐํ์ฌ ์์ฐจ๊ฒ์์ ์ฉ์ดํ๊ฒ ํ๋ ๋ฑB-Tree๋ฅผ ์ธ๋ฑ์ค์ ๋ง๊ฒ ์ต์ ํ ํ์๋ค.
์ฐธ๊ณ
Last updated