# Index
# DB Index
- ๋ชฉ์ : RDBMS์์ ๊ฒ์ ์๋๋ฅผ ๋์ด๊ธฐ ์ํ ๊ธฐ์
Table์ Column์ ์์ธํ ํจ (๋ฐ๋ก ํ์ผ๋ก ์ ์ฅ)
โ ํด๋น Table์ Record๋ฅผ Full scan ํ์ง ์์.
โ ์์ธํ ๋ (B+ Tree ๊ตฌ์กฐ๋ก) Index ํ์ผ ๊ฒ์์ผ๋ก ๊ฒ์ ์๋ ํฅ์
- ๊ณผ์ : Table์ ์์ฑํ๋ฉด, MYD, MYI, FRM 3๊ฐ์ ํ์ผ์ด ์์ฑ๋จ.
FRM : ํ ์ด๋ธ ๊ตฌ์กฐ๊ฐ ์ ์ฅ๋์ด ์๋ ํ์ผ
MYD : ์ค์ ๋ฐ์ดํฐ๊ฐ ์๋ ํ์ผ
MYI : Index ์ ๋ณด๊ฐ ๋ค์ด๊ฐ ์๋ ํ์ผ
Index๋ฅผ ์ฌ์ฉํ์ง ์๋ ๊ฒฝ์ฐ, MYI ํ์ผ์ ๋น์ด์ ธ ์์. ๊ทธ๋ฌ๋, ์ธ๋ฑ์ฑํ๋ ๊ฒฝ์ฐ MYI ํ์ผ์ด ์์ฑ๋จ.
์ดํ์ ์ฌ์ฉ์๊ฐ Select ์ฟผ๋ฆฌ๋ก Index๋ฅผ ์ฌ์ฉํ๋ Column์ ํ์ ์, MYI ํ์ผ์ ๋ด์ฉ์ ๊ฒ์ํจ.
- ๋จ์
- Index ์์ฑ์, .mdb ํ์ผ ํฌ๊ธฐ๊ฐ ์ฆ๊ฐํจ
- ํ ํ์ด์ง๋ฅผ ๋์์ ์์ ํ ์ ์๋ ๋ณํ์ฑ์ด ์ค์ด๋ฌ.
- ์ธ๋ฑ์ค ๋ Field์์ Data๋ฅผ ์ ๋ฐ์ดํธํ๊ฑฐ๋, Record๋ฅผ ์ถ๊ฐ ๋๋ ์ญ์ ์ ์ฑ๋ฅ์ด ๋จ์ด์ง.
- ๋ฐ์ดํฐ ๋ณ๊ฒฝ ์์ ์ด ์์ฃผ ์ผ์ด๋๋ ๊ฒฝ์ฐ, Index๋ฅผ ์ฌ์์ฑํด์ผ ํ๋ฏ๋ก, ์ฑ๋ฅ์ ์ํฅ์ ๋ฏธ์นจ.
- ์ํฉ ๋ถ์
์ฌ์ฉํ๋ฉด ์ข์ ๊ฒฝ์ฐ
(1) Where ์ ์์ ์์ฃผ ์ฌ์ฉ๋๋ Column
(2) ์ธ๋ํค๊ฐ ์ฌ์ฉ๋๋ Column
(3) Join์ ์์ฃผ ์ฌ์ฉ๋๋ Column
Index ์ฌ์ฉ์ ํผํด์ผ ํ๋ ๊ฒฝ์ฐ
(1) Data ์ค๋ณต๋๊ฐ ๋์ Column
(2) DML์ด ์์ฃผ ์ผ์ด๋๋ Column
- DML์ด ์ผ์ด๋ฌ์ ๋์ ์ํฉ
INSERT
๊ธฐ์กด Block์ ์ฌ์ ๊ฐ ์์ ๋, ์๋ก์ด Data๊ฐ ์ ๋ ฅ๋จ
-> ์๋ก์ด Block์ ํ ๋น ๋ฐ์ ํ, Key๋ฅผ ์ฎ๊ธฐ๋ ์์ ์ ์ํ (**๋ง์ ์์ Redo๊ฐ ๊ธฐ๋ก**๋๊ณ , ์ ๋ฐ)
-> Index split ์์ ๋์, ํด๋น Block์ Key ๊ฐ์ ๋ํด์ DML์ด ๋ธ๋กํน ๋จ... ๋๊ธฐ ์ด๋ฒคํธ ๋ฐ์
DELETE
[Table๊ณผ Index ์ํฉ ๋น๊ต]
Table์์ data๊ฐ delete ๋๋ ๊ฒฝ์ฐ : Data๊ฐ ์ง์์ง๊ณ , ๋ค๋ฅธ Data๊ฐ ๊ทธ ๊ณต๊ฐ์ ์ฌ์ฉ ๊ฐ๋ฅ
Index์์ Data๊ฐ delete ๋๋ ๊ฒฝ์ฐ : Data๊ฐ ์ง์์ง์ง ์๊ณ , ์ฌ์ฉ ์ ๋จ ํ์๋ง ํด๋ .
-> Table์ Data ์์ Index์ Data ์๊ฐ ๋ค๋ฅผ ์ ์์.
UPDATE
Table์์ update๊ฐ ๋ฐ์ํ๋ฉด -> Index๋ Update ํ ์ ์์.
Index์์๋ Delete๊ฐ ๋ฐ์ํ ํ, ์๋ก์ด ์์ ์ Insert ์์ / 2๋ฐฐ์ ์์ ์ด ์์๋์ด, ํ๋ฌ