DB ํ ์ด๋ธ์ ๋ํ ๊ฒ์ ์๋๋ฅผ ๋์ด๊ธฐ ์ํด ์ฌ์ฉํ๋ ํ๋์ ์๋ฃ ๊ตฌ์กฐ์ด๋ค. ํน์ ์ปฌ๋ผ์ ์ธ๋ฑ์ค๋ฅผ ์์ฑํ๋ฉด, ํด๋น ์ปฌ๋ผ์ ๋ฐ์ดํฐ๋ค์ ์ ๋ ฌํ์ฌ ๋ณ๋์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๋ฐ์ดํฐ์ ๋ฌผ๋ฆฌ์ ์ฃผ์์ ํจ๊ป ์ ์ฅ๋๋ค.
์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ์ธ๋ฑ์ค๋ฅผ ํ๊ณ , ๋จผ์ ์ธ๋ฑ์ค์ ์ ์ฅ๋์ด ์๋ ๋ฐ์ดํฐ์ ๋ฌผ๋ฆฌ์ ์ฃผ์๋ก ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ์์ผ๋ก ๋์ํ๋ค.
ํ ์ด๋ธ์ ๋ ์ฝ๋๋ ์์ ์์ด ์ ์ฅ๋๊ธฐ ๋๋ฌธ์ Where์ ํน์ ์กฐ๊ฑด์ ๋ง๋ ๋ฐ์ดํฐ๋ค์ ์ฐพ์๋ผ ๋๋ ๋ ์ฝ๋๋ฅผ ์ฒ์๋ถํฐ ๋๊น์ง ์ฝ์ด์ ๋น๊ตํด์ผ ํ๋ค. ์ด๋ฅผ ํ ํ ์ด๋ธ ์ค์บ (Full Table Scan)์ด๋ผ๊ณ ํ๋ค. ํ์ง๋ง ์ธ๋ฑ์ค ํ ์ด๋ธ์ ๋ฐ์ดํฐ๋ค์ด ์ ๋ ฌ๋์ด ์๊ธฐ ๋๋ฌธ์ ์กฐ๊ฑด์ ๋ง๋ ๋ฐ์ดํฐ๋ค์ ๋น ๋ฅด๊ฒ ์ฐพ์๋ผ ์ ์๋ค.
Order by๋ ๋ถํ๊ฐ ๋ง์ด ๊ฑธ๋ฆฌ๋ ์์ ์ด๋ค. ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๋ฏธ ์ ๋ ฌ์ด ๋์ด ์๊ธฐ ๋๋ฌธ์, Order by์ ์ํ ์ ๋ ฌ ๊ณผ์ ์ ํผํ ์ ์๋ค.
MIN ๊ฐ๊ณผ MAX ๊ฐ์ ๋ ์ฝ๋์ ์์ ๊ฐ๊ณผ ๋ ๊ฐ ํ ๊ฑด์ฉ๋ง ๊ฐ์ ธ์ค๋ฉด ๋๊ธฐ ๋๋ฌธ์ ํ ํ ์ด๋ธ ์ค์บ์ผ๋ก ํ ์ด๋ธ์ ๋ชจ๋ ์ค์บํ๋ ๊ฒ๋ณด๋ค ํจ์ฌ ํจ์จ์ ์ผ๋ก ๊ฐ์ ์ฐพ์ ์ ์๋ค.
์ ๋ ฌ๋ ์ํ๋ฅผ ๊ณ์ ์ ์ง์์ผ์ผ ํ๋ ๊ฒ์ด ๋จ์ ์ด๋ค. insert, update, delete๋ฅผ ํตํด ๋ฐ์ดํฐ์ ๊ฐ์ด ๋ฐ๋๋ค๋ฉด ์ธ๋ฑ์ค ํ ์ด๋ธ ๋ด์ ์๋ ๊ฐ๋ค๋ ๋ค์ ์ ๋ ฌํด ์ฃผ์ด์ผ ํ๋ค. ์ธ๋ฑ์ค ํ ์ด๋ธ๊ณผ ์๋ณธ ํ ์ด๋ธ ๋ ๊ตฐ๋ฐ์ ๋ฐ์ดํฐ ์์ ์์ ์ ํด ์ฃผ์ด์ผ ํ๋ ๊ฒ์ด๋ค. ๋ํ ์ธ๋ฑ์ค๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํด์๋ DB์ ์ฝ 10%์ ํด๋นํ๋ ์ ์ฅ ๊ณต๊ฐ์ด ์ถ๊ฐ๋ก ํ์ํ๋ค.
๋ง์ ์์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ๋ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ์ฝ๊ฒ ํด๊ฒฐํ๊ธฐ ์ํด ๋ฌธ์ ๊ฐ ์๊ธธ ๋๋ง๋ค ์ธ๋ฑ์ค๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ ๋ฐ๋์งํ์ง ๋ชปํ๋ค. ์ธ๋ฑ์ค๊ฐ ๊ณ์ ์ถ๊ฐ๋๋ฉด ์ธ๋ฑ์ค๋ฅผ ์ฐธ์กฐํ๋ ํ๋์ ์ฟผ๋ฆฌ๋ฌธ์ ๋น ๋ฅด๊ฒ ๋ง๋ค ์ ์์์ง ๋ชฐ๋ผ๋ ์ ์ฒด์ ์ธ DB์ ์ฑ๋ฅ ๋ถํ๋ฅผ ์ด๋ํ๊ธฐ ๋๋ฌธ์ด๋ค. ๋ฐ๋ผ์ ์ธ๋ฑ์ค๋ฅผ ์์ฑํ๋ ๊ฒ๋ณด๋ค๋ ์ฟผ๋ฆฌ๋ฌธ์ ์กฐ๊ธ ๋ ํจ์จ์ ์ผ๋ก ์ง๋ ๊ฒ์ ์งํฅํด์ผ ํ๋ค. ์ธ๋ฑ์ค ์์ฑ์ ๋ง์ง๋ง ์๋จ์ผ๋ก ์๊ฐํ๋ ๊ฒ์ด ์ข๋ค.
-- ์ธ๋ฑ์ค ์์ฑ
CREATE INDEX [์ธ๋ฑ์ค๋ช
] ON ํ
์ด๋ธ๋ช
(์ปฌ๋ผ๋ช
)
-- ์ปฌ๋ผ ๊ฐ์ ์ค๋ณต ๊ฐ์ ํ์ฉํ์ง ์๋ ์ธ๋ฑ์ค ์์ฑ
CREATE[UNIQUE] INDEX ์ธ๋ฑ์ค๋ช
ON ํ
์ด๋ธ๋ช
(์ปฌ๋ผ๋ช
);
SELECT * FROM USER_INDEXES WHERE TABLE_NAME = 'ํ
์ด๋ธ๋ช
';
์์ฑํ ์ธ๋ฑ์ค๋ USER_INDEXES ์์คํ ๋ทฐ์์ ์กฐํํ ์ ์๋ค.
DROP INDEX ์ธ๋ฑ์ค๋ช
SQL ์ธ๋ฑ์ค(INDEX) ๋ป๊ณผ ์๋ฆฌ ์ดํดํ๊ธฐ(์ค๋ผํด, MS-SQL)
[DB] ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ๋ฑ์ค(Index) ๋ ๋ฌด์์ธ๊ฐ?