DB์์ table์ ๊ฒ์ ์ฑ๋ฅ์ ๋์ฌ์ฃผ๋ ๋ํ์ ์ธ ๋ฐฉ๋ฒ
RDBMS์์๋ B+tree๊ตฌ์กฐ๋ก๋ index๋ฅผ ์ฌ์ฉํด์ ๊ฒ์์๋๋ฅผ ํฅ์์ํจ๋ค.
Full Table Scan์ ์ํด๋ ๋๋ค.
๊ตฌ์กฐ : B+tree, Hash, Bitmap...
ํน์ Column์ search-key ๊ฐ์ผ๋ก ์ค์ ํ์ฌ index๋ฅผ ์์ฑํ๋ฉด, ํด๋น search-key ๊ฐ์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ์ฌ(search-key, pointer)๋ฅผ ๋ณ๋ก ํ์ผ์ ์ ์ฅํ๋ค. -> tableํฌ๊ธฐ์10 % ์ ์ฅ๊ณต๊ฐ
์ฌ์ฉ์ด์ : talbe์ ์์์์ด ๋์ ๋๋ค. ํ์ง๋ง, index๋ ์ ๋ ฌ๋์ด ์ ์ฅ
ํน์ column์ ๋ํ index๋ฅผ ์์ฑํด ๋์ ๊ฒฝ์ฐ ํด๋น ์์ฑ์ ๋ํ์ฌ search-key๊ฐ ์ ๋ ฌ๋์ด ์ ์ฅ๋์ด ์๊ธฐ ๋๋ฌธ์ ์กฐ๊ฑด ๊ฒ์(SELECT ~ WHERE) ์๋๊ฐ ๊ต์ฅํ ๋น ๋ฅด๋ค.
Clustering index : pk ๊ธฐ์ค์ผ๋ก table์ด ์ ๋ ฌ(์์ด์ฌ์ )
Secondary index : ๋ฐ๋ก index table(๋ถ๋ก ์์ธ)
index์ ์ฅ๋จ์
์ฅ์
๊ฒ์ ์๋ ํฅ์
๋จ์
๐ฅIndex๋ฅผ ์ด๋ Column์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์๊น?
Q. ์ฑ๋ณ column์ index๋ฅผ ๊ฑธ์ด์ฃผ๋๊ฒ ์ข์๊น?
์ฑ๋ณ์ฒ๋ผ ๋จ๋ ๋ ์ข ๋ฅ๋ก๋ง ๋๋ ์ง๋ ๊ฒฝ์ฐ๋ ์นด๋๋๋ฆฌํฐ๊ฐ ๋งค์ฐ ๋ฎ๊ณ , ์ ํ๋๋ ๋งค์ฐ ๋๊ฒ ๋๋ค. ์ด ๊ฒฝ์ฐ index๊ฐ ์ฃผ๋ ์ด์ ์ ๋งค์ฐ ์ ๊ณ , ์คํ๋ ค ์ ์ฅ๊ณต๊ฐ ์ฐจ์ง์ ๋ฐ์ดํฐ ์์ ์ ์ฑ๋ฅ์ ํ๋ฑ์ ๊ณ ๋ คํ์ฌ index๋ฅผ ์์ฑํ์ง ์๋ ๊ฒ์ด ์ข๋ค.
Q. true ๋๋ false ๊ฐ์ ๊ฐ๋ column์์, true 1%, false 99 %์ ๋น์จ๋ก ๊ตฌ์ฑ๋ ์ํฉ์์ index๋ฅผ ๊ฑฐ๋๊ฒ ์ข์๊น?
์๋ฌด๋ฆฌ ๋น์จ์ ์ฐจ์ด๊ฐ ์์ด๋ true, false ๋ ์ข ๋ฅ๋ก๋ง ๋๋ ์ง๋ ๊ฒฝ์ฐ์๋ ์นด๋๋๋ฆฌํฐ๊ฐ ๋งค์ฐ ๋ฎ๊ณ , ์ ํ๋๋ ๋งค์ฐ ๋๊ฒ ๋๋ค. ๋ฐ๋ผ์ index๋ฅผ ์์ฑํ์ง ์๋๊ฒ์ด ์ข๋ค.
index๋ฅผ B+tree๋ก ๊ตฌํํ๋ ์ด์
Hash table์ ์ฌ์ฉํ๋ฉด ํ๋์ ๋ฐ์ดํฐ๋ฅผ ํ์ํ๋ ์๊ฐ์ O(1)๋ก b-tree๋ณด๋ค ๋น ๋ฅด์ง๋ง, ๊ฐ์ด ์ ๋ ฌ๋์ด ์์ง ์๊ธฐ ๋๋ฌธ์ ๋ถ๋ฑํธ๋ฅผ ์ฌ์ฉํ๋ query์ ๋ํด์๋ ๋งค์ฐ ๋นํจ์จ์ ์ด๊ฒ ๋์ด ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฌ ํด์ ์ ์ฅํ๋ b+tree๋ฅผ ์ด์ฉํ๋ค.