πΎ[Database] Clustered Index(ν΄λ¬μ€ν°ν μΈλ±μ€)λ 무μμΌκΉμ?
π Intro.
- βοΈ ν΄λ¬μ€ν°ν μΈλ±μ€(Clustered Index)λ λ°μ΄ν°λ² μ΄μ€ ν
μ΄λΈμ λ°μ΄ν°κ° 물리μ μΌλ‘ μ λ ¬λ μνλ‘ μ μ₯λλ μΈλ±μ€μ.
- βοΈ μ¦, ν μ΄λΈμ λ°μ΄ν° ν(Row)μ΄ νΉμ κΈ°μ€(μ΄, Column)μ λ°λΌ μ λ ¬λλ©°, μΈλ±μ€λ κ·Έ κΈ°μ€μ λ°λΌ ν μ΄λΈμ 물리μ μμλ₯Ό μ μ§ν¨.
β 1οΈβ£ Clustered Indexμ ν΅μ¬ κ°λ .
1οΈβ£ 물리μ μ λ ¬(Physical Order).
- βοΈ ν΄λ¬μ€ν°ν μΈλ±μ€(Clustered Index)λ ν μ΄λΈμ λ°μ΄ν°κ° μΈλ±μ€ ν€ κ°μ λ°λΌ 물리μ μΌλ‘ μ λ ¬λ¨.
- βοΈ ν ν
μ΄λΈμ λ¨ νλμ ν΄λ¬μ€ν°ν μΈλ±μ€(Clustered Index)λ§ μμ±ν μ μμ.
- βοΈ λ°μ΄ν°μ 물리μ μμλ νλμ κΈ°μ€μΌλ‘λ§ μ λ ¬ κ°λ₯.
2οΈβ£ κΈ°λ³Έ ν€(Primary Key)μμ κ΄κ³.
- βοΈ λλΆλΆμ λ°μ΄ν°λ² μ΄μ€ μμ€ν
μμ Primary Key(κΈ°λ³Έ ν€)λ₯Ό μ€μ νλ©΄ μλμΌλ‘ ν΄λ¬μ€ν°ν μΈλ±μ€(Clustered Index)κ° μμ±λ¨.
- βοΈ μλ₯Ό λ€μ΄, idκ° Primary Keyλ‘ μ€μ λ κ²½μ°, ν μ΄λΈμ id μμλλ‘ μ λ ¬λ©λλ€.
3οΈβ£ λ°μ΄ν° νμ΄μ§(Data Pages)
- βοΈ ν΄λ¬μ€ν°ν μΈλ±μ€(Clustered Index)λ λ°μ΄ν° νμ΄μ§ μμ²΄κ° μΈλ±μ€μ μΌλΆκ° λ¨.
- λ°λΌμ ν΄λ¬μ€ν°ν μΈλ±μ€(Clustered Index)λ₯Ό μ¬μ©νλ©΄ λ°μ΄ν°μ μ§μ μ κ·Όν μ μμ΄ κ²μ μλκ° λΉ λ¦.
4οΈβ£ Non-Clustered Index (λΉν΄λ¬μ€ν°ν μΈλ±μ€)μμ μ°¨μ΄
- βοΈ ν΄λ¬μ€ν°ν μΈλ±μ€(Clusterd Index) : μ€μ λ°μ΄ν°κ° μΈλ±μ€ ν€ μμλλ‘ μ λ ¬λμ΄ μ μ₯λ©λλ€.
- βοΈ λΉν΄λ¬μ€ν°ν μΈλ±μ€(Non-Clustered Index) : λ°μ΄ν°λ μ λ ¬λμ§ μμΌλ©°, μΈλ±μ€λ λ°μ΄ν°μ μμΉλ₯Ό κ°λ¦¬ν€λ ν¬μΈν°λ₯Ό ν¬ν¨ν©λλ€.
β 2οΈβ£ ν΄λ¬μ€ν°ν μΈλ±μ€μ μ₯λ¨μ .
π μ₯μ .
1οΈβ£ λΉ λ₯Έ κ²μ κΈ°λ₯.
- βοΈ μΈλ±μ€ ν€ κ°μΌλ‘ μ§μ μ λ ¬λ λ°μ΄ν°λ₯Ό λΉ λ₯΄κ² μ‘°νν μ μμ.
2οΈβ£ λ²μ κ²μ μ΅μ ν.
- βοΈ BETWEEN, ORDER BY, GROUP BY κ°μ λ²μ κΈ°λ° μΏΌλ¦¬μ μ 리ν¨.
3οΈβ£ λ°μ΄ν° μ κ·Ό λΉμ© μ κ°.
- βοΈ λ°μ΄ν° νμ΄μ§ μμ²΄κ° μΈλ±μ€μ μΌλΆμ΄λ―λ‘ μΆκ° ν¬μΈν°κ° νμ μμ.
π λ¨μ .
1οΈβ£ λ°μ΄ν° μ½μ /μμ μ±λ₯ μ ν.
- βοΈ μΈλ±μ€ μμμ λ°λΌ λ°μ΄ν°κ° μ λ ¬λλ―λ‘ μ½μ /μμ μ μ€λ²ν€λκ° λ°μν μ μμ.
2οΈβ£ 리λΉλ λΉμ©.
- βοΈ ν΄λ¬μ€ν°ν μΈλ±μ€(Clustered Index)κ° μμ£Ό λ³κ²½λλ©΄ μΈλ±μ€λ₯Ό μ¬κ΅¬μ±ν΄μΌ ν μλ μμ.
3οΈβ£ ν κ°λ§ μμ± κ°λ₯.
- βοΈ ν μ΄λΈλΉ νλμ ν΄λ¬μ€ν°ν μΈλ±μ€(Clustered Index)λ§ μμ±ν μ μμ.
β 3οΈβ£ μΈμ μ¬μ©ν΄μΌ ν κΉ?
1οΈβ£ μμ£Ό μ‘°νλλ ν μ΄λΈ.
- βοΈ μ‘°ν μΏΌλ¦¬κ° λΉλ²νκ² μ€νλ κ²½μ° ν΄λ¬μ€ν°ν μΈλ±μ€λ₯Ό μ¬μ©.
2οΈβ£ λ²μ κ²μμ΄ λ§μ κ²½μ°.
- βοΈ BETWEEN, >, < μ κ°μ λ²μ κ²μμ μμ£Ό μ¬μ©νλ€λ©΄ μ 리ν¨.
3οΈβ£ μ λ ¬λ κ²°κ³Όκ° μμ£Ό νμν κ²½μ°.
- βοΈ ORDER BY μ μ΄ μμ£Ό μ¬μ©λλ κ²½μ° ν¨κ³Όμ μ.
β 4οΈβ£ λΉκ΅: Clustered Index vs Non-Clustered Index
κ΅¬λΆ | Clustered Index | Non-Clustered Index |
---|---|---|
물리μ μ μ₯ | λ°μ΄ν° μμ²΄κ° μ λ ¬λ¨ | λ°μ΄ν°λ μ λ ¬λμ§ μμ |
μΈλ±μ€ κ°μ | νλλ§ μμ± κ°λ₯ | μ¬λ¬ κ° μμ± κ°λ₯ |
μ±λ₯ | μ‘°ν μ±λ₯μ΄ λ λΉ λ¦ | λ°μ΄ν° μ κ·Όμ μΆκ° λ¨κ³ νμ |
μ£Όλ‘ μ¬μ©λλ κ²½μ° | Primary Keyλ‘ μ¬μ©λ¨ | Secondary Keyλ‘ μ¬μ©λ¨ |
π μ 리.
- βοΈ ν΄λ¬μ€ν°ν μΈλ±μ€(Clustered Index)λ ν
μ΄λΈμ λ°μ΄ν°λ₯Ό νΉμ ν€ κΈ°μ€μΌλ‘ 물리μ μΌλ‘ μ λ ¬νμ¬ μ μ₯νλ μΈλ±μ€μ
λλ€.
- βοΈ μ£Όλ‘ Primary Keyμ μν΄ μμ±λλ©°, λΉ λ₯Έ κ²μ λ° λ²μ μ‘°νμ μ 리ν©λλ€.
- βοΈ νμ§λ§ μ½μ /μμ μ μ±λ₯ μ νκ° λ°μν μ μκ³ , νλμ ν μ΄λΈμλ νλμ ν΄λ¬μ€ν°ν μΈλ±μ€λ§ μ‘΄μ¬ν μ μμ΅λλ€.
π― ν΅μ¬ ν¬μΈνΈ:
- βοΈ λ¬Όλ¦¬μ μ λ ¬μ΄ ν΅μ¬
- βοΈ Primary Keyκ° κΈ°λ³Έμ μΌλ‘ Clustered Index
- βοΈ μ‘°ν μ΅μ νμ μ 리, μ½μ /μμ λΉμ©μ μ¦κ°
π λ°μ΄ν°λ² μ΄μ€ μ€κ³ μ ν μ΄λΈμ νΉμ±κ³Ό 쿼리 ν¨ν΄μ κ³ λ €νμ¬ ν΄λ¬μ€ν°ν μΈλ±μ€λ₯Ό μ μ ν νμ©ν΄μΌ ν¨.