๋๋ค I/O์ ์์ฐจI/O๋ ํ๋ ๋์คํฌ ๋๋ผ์ด๋ธ์ ํ๋ํฐ(์ํ)์ ๋๋ ค์ ์ฝ์ด์ผ ํ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋ ์์น๋ก ๋์คํฌ ํค๋๋ฅผ ์ด๋์ํจ ๋ค์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๋ ๊ฒ์ ๋งํ๋ค.
์ฐจ์ด์ ์ผ๋ก๋ ์ฌ๋ฌ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅํ ๋, ์์ฐจ I/O๋ ๋์คํฌ ํค๋๋ฅผ ํ ๋ฒ๋ง ์์ง์ด์ง๋ง, ๋๋ค I/O๋ ๋์คํฌ ํค๋๋ฅผ ๋ฐ์ดํฐ์ ๊ฐ์๋งํผ ์์ง์ฌ์ผ ํ๋ค. ์ฌ๋ฌ ๋ฒ ์ฐ๊ธฐ ๋๋ ์ฝ๊ธฐ๋ฅผ ์์ฒญํ๋ ๋๋ค I/O ์์ ๋ถํ๊ฐ ํจ์ฌ ๋ ํฌ๋ค. ๋์คํฌ ํค๋๋ฅผ ์์ง์ผ ๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ์ฐ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ด ๊ฐ์ฅ ์ค๋ ๊ฑธ๋ฆฐ๋ค.
์ฟผ๋ฆฌ๋ฅผ ํ๋ํ๋ ๊ฒ์ ๋๋คI/O ์์ฒด๋ฅผ ์ค์ด๋ ๊ฒ์ด ๋ชฉ์ ์ด๋ค. ์ฟผ๋ฆฌ๋ฅผ ์ฒ๋ฆฌํ๋๋ฐ ๊ผญ ํ์ํ ๋ฐ์ดํฐ๋ง ์ฝ์ด์ค๋๋ก ์ฟผ๋ฆฌ๋ฅผ ๊ฐ์ ํด์ผ ํ๋ค.
์ธ๋ฑ์ค๋ ์ถ๊ฐ์ ์ธ ์ฐ๊ธฐ ์์ ๊ณผ ์ ์ฅ ๊ณต๊ฐ์ ํ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ์ ๊ฒ์ ์๋๋ฅผ ํฅ์ํ๊ธฐ ์ํ ์๋ฃ๊ตฌ์กฐ์ด๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ํจ์จ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ๊ธฐ ์ํด ๋ฐ์ดํฐ์ ๋ฐ์ดํฐ์ ์์น๋ฅผ ํฌํจํ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์์ฑํ์ฌ ๋น ๋ฅด๊ฒ ์กฐํํ ์ ์๋๋ก ํ๋ ๊ฒ์ด๋ค. ์ฝ๊ฒ ํํํ๋ฉด ์ธ๋ฑ์ค๋ ์ฑ ์ ์์ธ๊ณผ ๊ฐ๋ค๊ณ ํํํ ์ ์๋ค.
์นด๋๋๋ฆฌํฐ๊ฐ ๋์ ์ด์ ์ธ๋ฑ์ค๋ฅผ ์ค์ ํด์ผ ํ๋ค(์ค๋ณต๋๊ฐ ๋ฎ์). ์ค๋ณต๋๊ฐ ๋์ ์ปฌ๋ผ์ ์ธ๋ฑ์ค๋ฅผ ์ค์ ํ ๊ฒฝ์ฐ ๋ณ๋ค๋ฅธ ์ฑ๋ฅ ํฅ์์ ๊ธฐ๋ํ ์ ์๋ค.
์ฑ๋ฅ์ ํฐ ์ํฅ์ ๋ฏธ์น๋ WHERE, JOIN, ORDER BY ์ ์ด ์์ฃผ ์ฌ์ฉ๋๋ ์ปฌ๋ผ์ ์ฌ์ฉํด์ผ ํ๋ค.
INSERT, UPDATE, DELETE ๋ฑ์ ๋ฐ์ดํฐ ์์ ์ด ๋น๋ฒํ ํ ์ด๋ธ์ ์ ์ฉํ์ง ์์์ผ ํ๋ค. ๋ฐ์ดํฐ ๋ณ๊ฒฝ ์์ ์ด ์์ฃผ ๋ฐ์๋๋ค๋ฉด ํ์ด์ง ๋ถํ ์์ ์ผ๋ก ์ธํด ์กฐํ ์ฑ๋ฅ์ ์ ์ธํ ๋ค๋ฅธ ์์ ์ฑ๋ฅ์ด ๋๋ ค์ง๊ฒ ๋๊ธฐ ๋๋ฌธ์ด๋ค. ์กฐํ๋ฅผ ํ ๋ ๋น ๋ฅธ ์๋๋ฅผ ๊ธฐ๋ํ ์ ์๋ค.
๋ฐ์ดํฐ ๊ท๋ชจ๊ฐ ํฐ ํ ์ด๋ธ์์ ์ ์ฉํด์ผ ํ๋ค. ๊ท๋ชจ๊ฐ ์์ ๊ฒฝ์ฐ full scan์ ํ์ ์ ์กฐํ ์๋์์ ํฐ ์ฐจ์ด๊ฐ ๋ฐ์ํ์ง ์๋๋ค.
์ ์ฌ์ฉ๋์ง ์๋ ์ธ๋ฑ์ค๋ ์ ๊ฑฐํด์ผ ํ๋ค. ๋ถํ์ํ ์ธ๋ฑ์ค๋ ์ถ๊ฐ์ ์ธ ๊ณต๊ฐ์ ์๊ตฌํ๊ฒ ๋์ด ์ฑ๋ฅ ์ ํ๊ฐ ๋ฐ์ํ ์ ์๋ค. WHERE ์ ์ ์ฌ์ฉ๋๋๋ผ๋ ์์ฃผ ์ฌ์ฉ๋์ด์ผ ์ฑ๋ฅ์ ์ํฅ์ ์ค ์ ์๋ค.
์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ๋ฅผ ์ธ๋ฑ์ค ์์ฒด์์ ๊ฐ์ ธ์ฌ ์ ์๋ ์ธ๋ฑ์ค๋ฅผ ์ปค๋ฒ๋ง ์ธ๋ฑ์ค๋ผ๊ณ ํ๋ค. ๊ทธ๋์ ์ค์ ๋ฐ์ดํฐ๊น์ง ์ ๊ทผํ ํ์๊ฐ ์๋ค.
SELECT, WHERE, ORDER BY, GROUP BY ๋ฑ์ ์ฌ์ฉ๋๋ ๋ชจ๋ ์ปฌ๋ผ์ด ์ธ๋ฑ์ค์ ๊ตฌ์ฑ ์์์ธ ๊ฒฝ์ฐ์ด๋ค.
์ฌ๋ฌ ๊ฐ์ ์ปฌ๋ผ์ ์กฐํฉํ์ฌ ์์ฑ๋๋ ์ธ๋ฑ์ค๋ฅผ ์๋ฏธํ๋ค.
๋ฐ์ดํฐ๋ฅผ ์กฐํํ ๋ ๋จ์ผ ์ธ๋ฑ์ค๋ฅผ ์ฌ๋ฌ ๊ฐ ์ฌ์ฉํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค๋ฉด ๋ค์ค ์ปฌ๋ผ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ๋ค.
์๋ฅผ ๋ค์ด ์ด๋ฆ, ์ฑ๋ณ ๋ ์ปฌ๋ผ์ ๋ฐํ์ผ๋ก ๋ฐ์ดํฐ ํ์์ ์์ฃผ ํ ๊ฒฝ์ฐ ์ด๋ฆ, ์ฑ๋ณ์ ๊ฐ๊ฐ ๋จ์ผ ์ธ๋ฑ์ค์ ๊ฑธ๋ ค์๋ ์ํ์์ ์กฐํํ๋ ์ฑ๋ฅ๋ณด๋ค ์ด๋ฆ, ์ฑ๋ณ์ ๋ค์ค ์ปฌ๋ผ ์ธ๋ฑ์ค๊ฐ ๊ฑธ๋ ค์๋ ๊ฒฝ์ฐ์ ๋ฐ์ดํฐ ์์ธ์ค๊ฐ ์ค์ด๋ค์ด ์ฑ๋ฅ์ด ์ข๋ค.
์ผ๋ฐ์ ์ผ๋ก B Tree๋ผ๊ณ ํ๋ฉด B-Tree๋ฅผ ๋ปํ๋ค. B-Tree๋ ํธ๋ฆฌ ์๋ฃ๊ตฌ์กฐ์ ์ผ์ข ์ผ๋ก ์ด์ง ํธ๋ฆฌ๋ฅผ ํ์ฅํด ํ๋์ ๋ ธ๋๊ฐ ์ฌ๋ฌ ๊ฐ์ ์์ ๋ ธ๋๋ฅผ ๊ฐ์ง ์ ์๋ค. ๊ทธ๋์ ๋์ ๋ฒ์์ ํค๋ฅผ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋ค.
๊ทธ๋ฆฌ๊ณ ๋ชจ๋ ๋ฆฌํ ๋ ธ๋๊ฐ ๋์ผํ ๋ ๋ฒจ์ ์์นํ๋๋ก ์ ์ง๋๋ค. ๋ฐ๋ผ์ ๊ท ํ ํธ๋ฆฌ๋ก ๋ถ๋ฅ๋๋ค. ๊ท ํ ํธ๋ฆฌ์ด๊ธฐ ๋๋ฌธ์ ์ด๋ค ๊ฐ์ ๋ํด์๋ ๊ฐ์ ์๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์๋ค.
B-Tree๋ internal ๋๋ branch ๋ ธ๋์ key์ data๋ฅผ ๋ด์ ์ ์๋ค.
B-Tree์ ํ์ฅ ๊ฐ๋ ์ผ๋ก branch ๋ ธ๋์ key๋ง ๋ด์๋๊ณ , data๋ ๋ด์ง ์๋๋ค. ์ค์ง ๋ฆฌํ ๋ ธ๋์ key์ data๋ฅผ ์ ์ฅํ๊ณ , ๋ฆฌํ ๋ ธ๋๋ผ๋ฆฌ Linked List๋ก ์ฐ๊ฒฐ๋์ด ์๋ค.
๋ฆฌํ ๋ ธ๋๋ฅผ ์ ์ธํ๊ณ ๋ฐ์ดํฐ๋ฅผ ๋ด์๋์ง ์๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋์ฑ ํ๋ณดํ๊ณ ๋ ๋ง์ key๋ฅผ ๋ด์ ์ ์๋ค. ๋ง์ ํค๋ฅผ ๋ด๊ณ ์๊ธฐ ๋๋ฌธ์ ํธ๋ฆฌ์ ๋์ด๊ฐ ๋ฎ์ cache hit์ ๋์ผ ์ ์๋ค(์๋๊ฐ ๋น ๋ฆ).
ํ ์ค์บ ์, B+Tree๋ ๋ฆฌํ ๋ ธ๋์ ๋ฐ์ดํฐ๊ฐ ๋ชจ๋ ์๊ธฐ ๋๋ฌธ์ ํ ๋ฒ์ ์ ํ ํ์๋ง ํด์ B-Tree์ ๋นํด ์๋๊ฐ ๋น ๋ฅด๋ค. ๋ฐ๋๋ก B-Tree๋ ๋ชจ๋ ๋ ธ๋๋ฅผ ํ์ธํด์ผ ํ๋ค.
ํด๋ฌ์คํฐ๋ ์ธ๋ฑ์ค
๋ ผ ํด๋ฌ์คํฐ๋ ์ธ๋ฑ์ค
INDEX RANGE SCAN
INDEX FULL SCAN
INDEX UNIQUE SCAN
INDEX SKIP SCAN
INDEX FAST FULL SCAN
INDEX RANGE SCAN DESCENDING