Last updated
Last updated
๋ฐ์ดํฐ์ ์กฐํ ์๋๋ฅผ ํฅ์์ํค๊ธฐ ์ํด ์ฌ์ฉํ๋ ์๋ฃ๊ตฌ์กฐ
ํน์ ์ปฌ๋ผ์ ๋ํด ์ ๋ ฌ๋ ์์๋ก ์๋ณธ์ ๋ํ ์ฐธ์กฐ๋ฅผ ๊ฐ์ง๋
๋ณ๋์ ๋ฐ์ดํฐ๋ฅผ ์์ฑ
์? ์์๊ฐ ์ ๋ ฌ๋์์์ด ๋ณด์ฅ๋ ๋, Binary Search์ ๊ฐ์ ์๊ณ ๋ฆฌ์ฆ์ ํตํด ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ ๋น ๋ฅด๊ฒ ํจ์จ์ ์ผ๋ก ์ฐพ์ ์ ์๊ธฐ ๋๋ฌธ!
์ต๊ทผ์๋ ๋๋ถ๋ถ DB์์ B+ Tree
๋ฅผ ์ฑํ
B+ Tree๋, Leaf๊ฐ ์๋ Node๋ค์ ๋ชจ๋ ๊ฐ์ด ์๋๋ผ left/right child ๋ถ๊ธฐ์ ๊ธฐ์ค์ด ๋๋ ๋ฒ์์ ๋ํ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์ค์ง Leaf๋ง์ด ์ค์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๋ ์๋ฃ๊ตฌ์กฐ
log ์๊ฐ๋ณต์ก๋๋ก ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ฐพ์ ์ ์์
๋ํ, Leaf Node ๊ฐ์ ์ฐ๊ฒฐ์ด ์กด์ฌํด ๋ฒ์ ๋ด ๋ฐ์ดํฐ์ ์กฐํ ์ฐ์ฐ
์ ํจ์จ์
์นด๋๋๋ฆฌํฐ(Cardinality)๊ฐ ๋์ ์ปฌ๋ผ์ ์ ์ฌ์ฉํ๋ฉด ์กฐํ ์๋๋ฅผ O(N)์์ O(logN)๊น์ง ๊ฐ์ ํ ์ ์์
์นด๋๋๋ฆฌํฐ๊ฐ ๋๋ค๋ ๊ฒ์, ๋ฐ์ดํฐ์ ์ค๋ณต๋๊ฐ ๋ฎ๋ค๋ ๊ฒ์ ์๋ฏธ
์ค๋ณต๋๋ ๋ฐ์ดํฐ๊ฐ ์ ์ผ๋ฉด ๋ฒ์ ์ฐ์ฐ์ด ํจ์จ์ ์ผ๋ก ์๋ํ๊ธฐ ๋๋ฌธ
์ ๋ ฌ(ORDER BY), ์กฐ๊ฑด๋ถ(WHERE) ์ฐ์ฐ ๋ฑ์ ํจ์จ์
๋ฐ์ดํฐ๋ฅผ ์์ฑ/์์ /์ญ์ ํ ๋๋ง๋ค ์ธ๋ฑ์ค์ ์ด๋ฅผ ๋ฐ์ํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ถ๊ฐ์ ์ธ ์ฐ์ฐ ์๊ฐ ๋ฐ ์ ์ฅ ๊ณต๊ฐ์ ์ฌ์ฉํจ
์ฆ, ๊ณต๊ฐ ๋ณต์ก๋ ๋ฉด์์๋ ๋นํจ์จ์ ์ด๊ณ , ๋ฐ์ดํฐ๋ฅผ ์กฐ์ํ๋ ์ฐ์ฐ์ ์๋๋ ์ ํ๋จ
๋ฐ์ดํฐ์ ์นด๋๋๋ฆฌํฐ๊ฐ ๋๊ณ , ๋ฐ์ดํฐ์ ์์ฑ/์์ /์ญ์ ๋ณด๋ค ์กฐํ ๋น๋๊ฐ ํจ์ฌ ๋์ ์ปฌ๋ผ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์
๋ํ์ ์ธ ์์๊ฐ Primary Key
์ด๊ณ , ๋๋ฌธ์ PK์๋ ์๋์ผ๋ก index๊ฐ ์์ฑ๋จ
unique constraint๊ฐ ๋ถ์ฌ๋ ์ปฌ๋ผ๋ ์นด๋๋๋ฆฌํฐ๊ฐ ๊ฐ์ฅ ๋๊ธฐ ๋๋ฌธ์ ์๋์ผ๋ก index๊ฐ ์์ฑ๋จ
์ฌ๋ฌ ์ปฌ๋ผ์ผ๋ก ์ธ๋ฑ์ค๋ฅผ ๊ตฌ์ฑํ ์๋ ์์ผ๋ฉฐ, ์ด๋ฅผ ๋ณตํฉ ์ธ๋ฑ์ค
๋ผ๊ณ ํจ
๋ณตํฉ ์ธ๋ฑ์ค๋ ์์๊ฐ ์ค์
ํ๋ฉฐ ์์์ ๋ฐ๋ผ B+ ํธ๋ฆฌ๊ฐ ๊ตฌ์ฑ๋จ
๊ฐ์ฅ ์ฒ์์ ๋ช ์ํ ํธ๋ฆฌ๋ถํฐ ์์๋๋ก ์ ๋ ฌ๋๊ธฐ ๋๋ฌธ์, ์ฒซ ๋ฒ์งธ ์ปฌ๋ผ์ด ์กฐ๊ฑด์ ํฌํจ๋์ง ์์ผ๋ฉด ํด๋น ๋ณตํฉ ์ธ๋ฑ์ค๋ ์ฌ์ฉ๋์ง ์์
๋ฐ๋๋ก ๋งํ์๋ฉด, ์ฒซ ๋ฒ์งธ ์ปฌ๋ผ์ด ํฌํจ๋๋ ๊ฒฝ์ฐ ์ผ๋ถ ์ปฌ๋ผ์ด ๋๋ฝ๋์ด๋ 100% ํจ์จ์ ์๋์ง๋ผ๋ ํด๋น ๋ณตํฉ ์ธ๋ฑ์ค๊ฐ ์ฌ์ฉ๋์ด ๋ ํจ์จ์ ์กฐํ๋ฅผ ํ ์๋ ์์
๋ํ, ๋ณตํฉ ์ธ๋ฑ์ค๋ฅผ ๊ตฌ์ฑํ ๋์๋ ์นด๋๋๋ฆฌํฐ๊ฐ ๋์(์ค๋ณต์ด ์ ์) ์ปฌ๋ผ๋ถํฐ ๊ตฌ์ฑํ๋ ๊ฒ์ด ๋ ํจ์จ์
๋ณตํฉ ์ธ๋ฑ์ค์ฌ๋ ์ฒซ ์ปฌ๋ผ์ด between, like, <, >์ ๊ฐ์ ๋ฒ์ ์กฐํ ์กฐ๊ฑด์ ๋์์ธ ๊ฒฝ์ฐ ์ดํ ์ปฌ๋ผ์ ์ธ๋ฑ์ค๊ฐ ์ฌ์ฉ๋์ง ์์
์ด์ฐจํผ ์ฒซ ์ปฌ๋ผ์ ๋ฒ์ ์กฐํ๋ก ์กฐํ ๊ฒฐ๊ณผ๋ฅผ ๊ฒฐ์ ์ง์ ์ ์๊ธฐ ๋๋ฌธ
=, in๊ณผ ๊ฐ์ด ์ ํํ ๋งค์นญ๋๋ ์ปฌ๋ผ์ ์ฐพ๋ ๊ฒฝ์ฐ์๋ ์ฒซ ์ปฌ๋ผ ์ดํ ์ปฌ๋ผ์ ์ธ๋ฑ์ค๋ ์ฌ์ฉ๋จ
์ธ๋ฑ์ค๋ก ์ฌ์ฉ๋ ์ปฌ๋ผ๊ฐ์ ๋ณํ(ํ๋ณํ, ์ฐ์ ์ฐ์ฐ ๋ฑ์ ์ ์ฉ)ํ๋ ๊ฒฝ์ฐ ์ธ๋ฑ์ค๊ฐ ์ฌ์ฉ๋์ง ์์
null ๊ฐ์ is null ์กฐ๊ฑด์ผ๋ก ์ธ๋ฑ์ค ์ค์บ์ด ๊ฐ๋ฅ
explain์ ํตํด ์ตํฐ๋ง์ด์ ๊ฐ ์์ฑํ ์คํ ๊ณํ์ ํ์ธํ์ฌ ์ค์ ๋ก ์๋ํ ์ธ๋ฑ์ค๊ฐ ์ฌ์ฉ๋๋์ง๋ฅผ ๊ผญ ํ์ธํด๋ด์ผ ํจ
DBMS์ ๋ฐ๋ผ, ๋ฐ์ดํฐ ๊ตฌ์ฑ์ ๋ฐ๋ผ ์คํ๊ณํ์ด ๋ฌ๋ผ์ง ์ ์๊ธฐ ๋๋ฌธ