๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฑ๋ฅ์ ์ด์ , ์ธ๋ฑ์ค ์ฉ๋ ๊ด๋ฆฌ
์ธ๋ฑ์ค(Index)๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์กฐํ ์ฑ๋ฅ์ ํ๊ธฐ์ ์ผ๋ก ๋์ฌ์ฃผ์ง๋ง, ๊ณต์ง๋ ์๋๋๋ค. ์ธ๋ฑ์ค๋ฅผ ์์ฑํ ๋๋ง๋ค ์ถ๊ฐ์ ์ธ ๋์คํฌ ๊ณต๊ฐ์ด ์๋ชจ๋๋ฉฐ, ๋ฐ์ดํฐ ์ฝ์ (`INSERT`)์ด๋ ์์ (`UPDATE`) ์๋ง๋ค ์ธ๋ฑ์ค ๊ตฌ์กฐ๋ฅผ ์ฌ์ ๋ ฌํด์ผ ํ๋ฏ๋ก ์ฐ๊ธฐ ์ฑ๋ฅ์๋ ์ํฅ์ ์ค๋๋ค. ํนํ ๋ฌด๋ถ๋ณํ๊ฒ ๋ง์ ์ธ๋ฑ์ค๋ฅผ ์์ฑํ๋ฉด ๋ฐฐ๋ณด๋ค ๋ฐฐ๊ผฝ์ด ๋ ์ปค์ ธ ์ธ๋ฑ์ค ์ฉ๋์ด ์ค์ ๋ฐ์ดํฐ ์ฉ๋์ ๋์ด์๋ ํ์๊น์ง ๋ฐ์ํ ์ ์์ต๋๋ค.
์ด ๊ณ์ฐ๊ธฐ๋ B-Tree ๊ตฌ์กฐ์ ์ผ๋ฐ์ ์ธ ํน์ฑ์ ๋ฐํ์ผ๋ก ์ธ๋ฑ์ค ํฌ๊ธฐ๋ฅผ ์ถ์ ํฉ๋๋ค. ํต์ฌ ํฌ์ธํธ๋ **Fill Factor(์ถฉ์ ์จ)**์ ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ํฅํ ๋ฐ์ดํฐ ์ฝ์ ์ ๋๋นํด ์ธ๋ฑ์ค ํ์ด์ง์ ์ผ์ ์์ค์ ๋น ๊ณต๊ฐ์ ๋จ๊ฒจ๋ก๋๋ค. ๋ง์ฝ ์ถฉ์ ์จ์ 70%๋ก ์ค์ ํ๋ค๋ฉด, ์ค์ ๋ฐ์ดํฐ๋ณด๋ค ์ฝ 1.4๋ฐฐ ๋ ๋ง์ ๋ฌผ๋ฆฌ์ ๊ณต๊ฐ์ ์ฐจ์งํ๊ฒ ๋ฉ๋๋ค. ์ด ๋น ๊ณต๊ฐ ๊ด๋ฆฌ๊ฐ ์ ๋๋ก ๋์ง ์์ผ๋ฉด ์ธ๋ฑ์ค ์กฐ๊ฐํ(Fragmentation)๊ฐ ์ฌํด์ ธ ์ฑ๋ฅ ์ ํ์ ์์ธ์ด ๋ฉ๋๋ค.
ํจ์จ์ ์ธ DB ์ด์์ ์ํด์๋ ์ธ๋ฑ์ค ๋์ ์ปฌ๋ผ์ ๋ฐ์ดํฐ ํ์ ์ ์ ์คํ ์ ํํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์์ต ๊ฑด์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ ํ ์ด๋ธ์์ 8๋ฐ์ดํธ `BIGINT` ๋์ 16๋ฐ์ดํธ `UUID`๋ฅผ ์ธ๋ฑ์ค๋ก ์ฐ๋ฉด ์ ์ฅ ๊ณต๊ฐ์ ๋ ๋ฐฐ๋ก ๋์ด๋๋ฉฐ ๋ฉ๋ชจ๋ฆฌ ์ ์ค๋ฅ ์ ๋จ์ด์ง๋๋ค. ๋ณธ ๋๊ตฌ๋ฅผ ํตํด ์ธ๋ฑ์ค ์ถ๊ฐ ์ ์์ ์ฉ๋์ ๋ฏธ๋ฆฌ ์ฐ์ถํด ๋ณด๊ณ , ์ธํ๋ผ ๋น์ฉ๊ณผ ์ฑ๋ฅ ์ฌ์ด์ ์ต์ ์ ํฉ์์ ์ ์ฐพ์๋ณด์ธ์.
์์ฃผ ๋ฌป๋ ์ง๋ฌธ (FAQ)
A: ๊ธฐ๋ณธ์ ์ธ B-Tree ๊ตฌ์กฐ๋ ์ ์ฌํ์ง๋ง, ๋ด๋ถ์ ์ธ ํฌ์ธํฐ ํฌ๊ธฐ๋ ํ์ด์ง ํค๋ ์ค๋ฒํค๋์ ๋ฐ๋ผ ์ MB ์ ๋์ ๋ฏธ์ธํ ์ฐจ์ด๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
A: ์ธ๋ฑ์ค์ ํฌํจ๋ ๋ชจ๋ ์ปฌ๋ผ์ ๋ฐ์ดํธ ํฉ๊ณ๋ฅผ 'ํ๊ท ํฌ๊ธฐ' ์นธ์ ์ ๋ ฅํ์ฌ ๊ณ์ฐํ ์ ์์ต๋๋ค.
A: ์ธ๋ฑ์ค๊ฐ ๋ฉ๋ชจ๋ฆฌ(Buffer Pool)์ ๋ค ์ฌ๋ผ๊ฐ์ง ๋ชปํ๋ฉด ๋น๋ฒํ ๋์คํฌ ์ค์์ด ๋ฐ์ํ์ฌ ์กฐํ ์ฑ๋ฅ์ด ๊ธ๊ฒฉํ ๋จ์ด์ง๋๋ค. ์ธ๋ฑ์ค๋ ๊ฐ๊ธ์ ๋ฉ๋ชจ๋ฆฌ ๋ด์์ ์ํ ๊ฐ๋ฅํ ํฌ๊ธฐ๋ก ์ ์งํด์ผ ํฉ๋๋ค.