μλ νμΈμ Fomaπ» μ λλ€.
μ€λμ μνλ λ°μ΄ν°λ₯Ό μ½κ² μ°Ύμμ€ μ μλλ‘ λ―Έλ¦¬ μ 리λ₯Ό ν΄λλ μΈλ±μ€μ λν΄μ μμλ³΄λ €κ³ ν©λλ€.
λ°λ‘ μμν κ²μ~
μΈλ±μ€(Index)λ?
μΈλ±μ€λ λ°μ΄ν°λ² μ΄μ€ λΆμΌμ μμ΄μ ν μ΄λΈμ λν λμμ μλλ₯Ό λμ¬μ£Όλ μλ£ κ΅¬μ‘°λ₯Ό μΌμ»«λλ€. μΈλ±μ€λ ν μ΄λΈ λ΄μ 1κ°μ 컬λΌ, νΉμ μ¬λ¬ κ°μ 컬λΌμ μ΄μ©νμ¬ μμ±λ μ μλ€. κ³ μμ κ²μ λμλΏλ§ μλλΌ λ μ½λ μ κ·Όκ³Ό κ΄λ ¨ ν¨μ¨μ μΈ μμ λ§€κΉ λμμ λν κΈ°μ΄λ₯Ό μ 곡νλ€. μΈλ±μ€λ₯Ό μ μ₯νλ λ° νμν λμ€ν¬ 곡κ°μ λ³΄ν΅ ν μ΄λΈμ μ μ₯νλ λ° νμν λμ€ν¬ 곡κ°λ³΄λ€ μλ€. (μλνλ©΄ λ³΄ν΅ μΈλ±μ€λ ν€-νλλ§ κ°κ³ μκ³ , ν μ΄λΈμ λ€λ₯Έ μΈλΆ νλͺ©λ€μ κ°κ³ μμ§ μκΈ° λλ¬Έμ΄λ€.) κ΄κ³ν λ°μ΄ν°λ² μ΄μ€μμλ μΈλ±μ€λ ν μ΄λΈ λΆλΆμ λν νλμ μ¬λ³Έμ΄λ€. - μν€ λ°±κ³Ό -
μ¦, μΈλ±μ€λ ν μ΄λΈμ κ²μ μλλ₯Ό ν₯μμν€λ μλ£κ΅¬μ‘°μ λλ€.
μ½κ² μ€λͺ νλ©΄ μνλ μ± μ μ°Ύλ κ²κ³Ό λΉμ·ν©λλ€.
μλμ κ°μ΄ μ± μ΄ μ λ¦¬κ° μλ μνλ‘ μμΌλ©΄ μΌμΌμ΄ λͺ¨λ μ± λ€μ νμΈνλ©° μ°ΎμμΌ ν κ²μ λλ€.
λ§μ½ μ 리λ₯Ό μν μνλ‘ λ§€λ² κ·Έ μ± μ μ°ΎμΌλ €κ³ νλ©΄ λ§€λ² μκ°μ΄ λλΉλ κ²μ λλ€.
νμ§λ§ λμκ΄μ²λΌ γ±,γ΄,γ·,γΉ... μΌλ‘ μ± μ λ°λ‘ μ 리ν΄λλ©΄ μ°ΎκΈ°κ° ν¨μ¬ μ¬μμ§κ² μ£ ?
λ°λ‘ μ΄λ κ² μμ£Ό μ°Ύλ μ± λ€μ λ°λ‘ μ 리λ₯Ό ν΄λλ κ²μ΄ λ°λ‘ μΈλ±μ€μ λλ€.
μΈλ±μ€μ μλ£κ΅¬μ‘°
1. ν΄μ¬ ν μ΄λΈ
μ± λ§λ€ μμΉλ₯Ό 미리 μ μ₯ν΄λκ³ μνλ μ± μ μ°Ύμ λ ν΄λΉ μ± μ΄λ¦μ κ²μν΄ μμΉλ₯Ό μμλ΄λ©΄
κ΅μ₯ν λΉ λ₯΄κ² μ± μ μ°Ύμ μ μκ² μ£ ?
μμ κ°μ λ°©λ²μ΄ λ°λ‘ ν΄μ¬ ν μ΄λΈ(Hash Table) μ λλ€.
(ν΄μ¬ ν μ΄λΈμ λν΄μ μ λͺ¨λ₯΄μλ λΆλ€μ μ¬κΈ° μμ νμΈν΄μ£ΌμΈμ!)
νμ§λ§ λλΆλΆμ λ°μ΄ν°λ² μ΄μ€λ ν΄μ¬ ν μ΄λΈμ μ¬μ©νμ§ μμ΅λλ€.
λ§μ½ μ± μ λͺ©μ΄ κΈ°μ΅μ΄ μ μλ 'κ°'λ‘ μμνλ μ± μ μ°Ύκ³ μΆλ€λ©΄ μ΄λ‘ν΄μΌ ν κΉμ?
ν΄μ¬ ν μ΄λΈλ‘ λ μλ£κ΅¬μ‘°λ λͺ¨λ μ± μ μΌμΌμ΄ μ‘°νν΄μΌ ν κ²μ λλ€.
2. B+ Tree
μμ κ°μ ν΄μ¬ ν μ΄λΈμ λ¨μ μ 보μνμ¬ λμ¨ κ²μ΄ λ°λ‘ B+Tree μ λλ€.
(B Treeμ λν΄ μ λͺ¨λ₯΄μλ λΆλ€μ μ¬κΈ° μμ νμΈν΄μ£ΌμΈμ!)
μλμ κ°μ΄ μ λͺ©μ μμμ λ°λΌ μ± λ€μ μ λ¦¬ν΄ λκ³ ν΄λΉλλ μμΉλ₯Ό μ°Ύμκ°λ κ²μ΄μ£ !
γ± - κ°,κ²,κΈ°,κ³ ,ꡬ...
γ΄ - λ,λ€,λ,λ Έ,λ...
γ· - λ€,λ°,λ,λ,λ...
...
'κ°μ' λΌλ μ± μ μ°ΎμΌλ €λ©΄ γ± - κ° - κ°μ <- μλμ κ°μ μμλ‘ μ°ΎμΌλ©΄ ν¨μ¬ μ½κ² μ°Ύμ μ μκ² μ£ ?
κ·Έλ λ€λ©΄ λͺ¨λ ν μ΄λΈμ μΈλ±μ€λ‘ λ§λ€λ©΄ λμ§ μλ? π€
μ λ΅μ 'κ·Έλ μ§ μλ€' μ λλ€.
κ΅μ₯ν λ§μ μ± λ€μ΄ μλ€λ©΄, 미리 μ λ¦¬ν΄ λκ³ λ€μλΆν° μ± μ μ°Ύμ λ λΉ λ₯΄κ² μ°Ύλ κ²μ΄ ν¨μ¨μ μΌ κ²μ λλ€.
νμ§λ§ μλμ κ°μ΄ μ± μ΄ λͺ κΆ μλ μνλΌλ©΄ μ΄λ¨κΉμ?
λΉ¨κ°μ μ± μ μ°ΎκΈ° μν΄ μ± μ μ λͺ©λλ‘ μ 리λ₯Ό ν λ€μ λΉ¨κ°μ μ λͺ©μ ν΄λΉνλ μ± μ μ°Ύλ κ²λ³΄λ€ κ·Έλ₯ μ± μ μ°Ύλ κ²μ΄ ν¨μ¬ λΉ λ₯΄κ² μ£ ?
μ¦, μ 리νλ μκ°μ΄ μ± μ μ°Ύλ μκ°λ³΄λ€ λ μ¬μ©λλ―λ‘ μ΄ λλ μΈλ±μ€λ₯Ό μ¬μ©νλ κ²μ΄ λ λΉν¨μ¨μ μΈ λ°©λ²μ λλ€.
κ³ λ‘ μΈλ±μ€ μλ£κ΅¬μ‘°λ₯Ό λ§λ€ λλ κ·λͺ¨κ° μμ§ μμ ν μ΄λΈ, μ¬λ¬ λ² μμ±,μμ ,μμ κ° λ°μνμ§ μλ ν μ΄λΈμ΄ μ ν©ν©λλ€.
μμ±
μμ±λ°©λ²μ μλμ κ°μ΄ νμλ©΄ μμ±νμλ©΄ λ©λλ€.
κΈ°λ³Έμ μΌλ‘ μ€λ¦μ°¨μ(ASCENDING)μΌλ‘ λκΈ° λλ¬Έμ λ΄λ¦Ό μ°¨μμΌλ‘ λ§λ€ λλ νλ μ΄λ¦ λ€μ DESCλ₯Ό λΆμ¬μ€λλ€.
CREATE INDEX μΈλ±μ€μ΄λ¦ ON μ λ ¬ν ν
μ΄λΈ(μ λ ¬νλ);
κ²μ νλ μ΄ μ 보μμ μ΄λ¦ μμΌλ‘ λ΄λ¦Ό μ°¨μ μ λ ¬ μΈλ±μ€
CREATE INDEX NAME_DSC ON GAME_TB(NAME DESC);
μλμ κ°μ΄ Indexνμ NAME_DSCκ° μκΈ΄ κ±Έ λ³Ό μ μμ΅λλ€.
μ‘°ν
ν μ΄λΈμ μλ μΈλ±μ€λ₯Ό νμΈν μ μμ΅λλ€.
SELECT * FROM ALL_INDEXES WHERE TABLE_NAME = 'ν
μ΄λΈ μ΄λ¦';
κ²μ ν μ΄λΈμ μΈλ±μ€λ₯Ό νμΈνλ©΄,
SELECT * FROM ALL_INDEXES WHERE TABLE_NAME = 'GAME_TB';
μλμ κ°μ΄ μμμ μμ±ν NAME_DSC μΈλ±μ€λ₯Ό νμΈν μ μμ΅λλ€.
μ¬μμ±
B+ TREE μλ£κ΅¬μ‘° νΉμ± μ ν μ΄λΈμ λν λ΄μ©μ΄ μμ (νΉν μ κ±°)λ λ μΈλ±μ€μμ μ κ±°κ° λμ§ μλ μν©μ΄ λ°μν λκ° μμ΅λλ€.
κ³ λ‘ λΆνμν 곡κ°μ μ°¨μ§νλ κ²μ λ€μ μ¬λ°°μΉνκΈ° μν΄ μ¬μμ±μμΌν λκ° μμ΅λλ€.
λ°λ‘ μλμ κ°μ΄ REBUILDλ₯Ό μ΄μ©ν΄ μ¬μ±μ± μν¬ μ μμ΅λλ€.
ALTER INDEX μΈλ±μ€μ΄λ¦ REBUILD;
μμ
μΈλ±μ€ μ체λ μμ νλ λ°©λ²μ΄ μκ³ , μ΄λ¦μ μμ νλ λ°©λ²μ΄ μμ΅λλ€.
ALTER INDEX μΈλ±μ€μ΄λ¦ RENAME TO λ°κΏμΈλ±μ€μ΄λ¦;
μμμ λ§λ NAME_DSCλ₯Ό NAME_DESCλ‘ λ°κΎΈλ λ°©λ²μ λλ€.
ALTER INDEX NAME_DSC RENAME TO NAME_DESC;
μλμ κ°μ΄ μΈλ±μ€ μ΄λ¦μ΄ NAME_DESCλ‘ λ³κ²½λ©λλ€.
μμ
DROP INDEX μΈλ±μ€μ΄λ¦;
μμμ λ§λ NAME_DESCλ₯Ό μμ νλ €λ©΄ μλμ κ°μ΄ μμ±ν΄ μ£Όμλ©΄ λ©λλ€.
DROP INDEX NAME_DESC;
'π Database > Oracle' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Oracle] ν¨μ(Function)μ νλ‘μμ (Procedure) μ°¨μ΄ (1) | 2022.03.05 |
---|---|
[Oracle] ν¨μ(Function)λ? (feat. C.R.U.D) (0) | 2022.03.05 |
[Oracle] νΈλ¦¬κ±°(Trigger)λ? (feat. C.R.U.D) (0) | 2022.03.05 |
[Oracle] νλ‘μμ (Procedure)λ? (feat. C.R.U.D) (0) | 2022.03.04 |
[Oracle] λ·°(View)λ? (feat C.R.U.D) (0) | 2022.03.04 |
λκΈ