Home
>
DB
>
πΎ[Database] Secondary Index(보쑰 μΈλ±μ€)λ 무μμΌκΉμ?
Database
Database Optimization
πΎ[Database] Secondary Index(보쑰 μΈλ±μ€)λ 무μμΌκΉμ?
π Intro.
- βοΈ Secondary Index (보쑰 μΈλ±μ€)λ ν
μ΄λΈμ κΈ°λ³Έ ν€(Primary Key)λ ν΄λ¬μ€ν°ν μΈλ±μ€(Clustered Index) μΈμ λ€λ₯Έ 컬λΌ(Column)μ μΆκ°λ‘ μμ±λλ μΈλ±μ€μ.
- βοΈ μ£Όλ‘ κ²μ μ±λ₯μ κ°μ νκ±°λ νΉμ μ΄(Column)μμμ μ‘°νλ₯Ό μ΅μ ννκΈ° μν΄ μ¬μ©λ¨.
β
1οΈβ£ Secondary Indexμ ν΅μ¬ κ°λ
.
1οΈβ£ κΈ°λ³Έ ν€(Primary Key)μμ μ°¨μ΄.
- βοΈ Primary Key : ν
μ΄λΈμ μ£Όλ μΈλ±μ€λ‘, λ°μ΄ν°κ° 물리μ μΌλ‘ μ λ ¬λ¨.
- βοΈ Secondary Index : κΈ°λ³Έ ν€(Primary Key)κ° μλ λ€λ₯Έ 컬λΌμ κΈ°μ€μΌλ‘ μμ±λλ©°, λ°μ΄ν°λ 물리μ μΌλ‘ μ λ ¬λμ§ μμ.
2οΈβ£ ν¬μΈν° ꡬ쑰.
- βοΈ Secondary Indexλ ν΄λΉ 컬λΌμ κ°μ μ λ ¬ν ν, κΈ°λ³Έ ν€(Primary Key)λ 물리μ μ£Όμλ₯Ό κ°λ¦¬ν€λ ν¬μΈν°λ₯Ό ν¬ν¨ν¨.
- βοΈ μ΄λ₯Ό ν΅ν΄ ν΄λΉ μ»¬λΌ κ°μΌλ‘ λΉ λ₯΄κ² λ°μ΄ν°λ₯Ό μ°Ύκ³ , κ·Έ λ°μ΄ν°λ₯Ό μ€μ λ‘ μ‘°νν μ μμ.
3οΈβ£ λ€μ€ μμ± κ°λ₯.
- βοΈ νλμ ν
μ΄λΈμλ μ¬λ¬ κ°μ Secondary Indexλ₯Ό μμ±ν μ μμ.
- βοΈ μλ₯Ό λ€μ΄, nameκ³Ό email 컬λΌμ κ°κ° Secondary Indexλ₯Ό μμ±ν μ μμ.
4οΈβ£ μ½κΈ°/μ°κΈ° μ±λ₯ νΈλ μ΄λμ€ν.
- βοΈ Secondary Indexλ μ½κΈ° μ±λ₯μ ν₯μμν€μ§λ§, μ°κΈ° μ±λ₯(INSERT, UPDATE, DELETE)μ μ νλ μ μμ.
- βοΈ λ°μ΄ν°κ° λ³κ²½λ λλ§λ€ μΈλ±μ€λ₯Ό μ
λ°μ΄νΈν΄μΌ νκΈ° λλ¬Έμ.
β
2οΈβ£ Secondary Indexμ μ₯λ¨μ .
π μ₯μ .
1οΈβ£ κ²μ μλ ν₯μ.
- νΉμ 컬λΌμ λν΄ λΉ λ₯΄κ² κ²μ κ°λ₯.
2οΈβ£ μ¬λ¬ νλμ μΈλ±μ€ μμ± κ°λ₯.
- νλμ ν
μ΄λΈμ μ¬λ¬ Secondary Indexλ₯Ό μμ±ν μ μμ.
3οΈβ£ λ€μν 쿼리 μ΅μ ν.
- μμ£Ό μ¬μ©νλ WHERE, JOIN, ORDER BY μ μ νμ© κ°λ₯.
π λ¨μ .
1οΈβ£ μ°κΈ° μ±λ₯ μ ν.
- λ°μ΄ν° μ½μ
, μ
λ°μ΄νΈ, μμ μ Secondary Indexλ ν¨κ» μ
λ°μ΄νΈλμ΄μΌ νλ―λ‘ μ°κΈ° μ±λ₯μ΄ μ νλ¨.
2οΈβ£ μΆκ°μ μΈ μ μ₯ κ³΅κ° νμ.
- Secondary Indexλ λ³λμ μ μ₯ 곡κ°μ μ°¨μ§ν¨.
3οΈβ£ 볡μ‘ν μ μ§ κ΄λ¦¬.
- λ무 λ§μ μΈλ±μ€λ 쿼리 μ΅μ νλ μΈλ±μ€ μ¬κ΅¬μ±μ λΆνλ₯Ό μ€ μ μμ.
β
3οΈβ£ Secondary Index vs Clusterd Index
κ΅¬λΆ |
Clustered Index |
Secondary Index |
κΈ°μ€(Column) |
Primary Key (μ£Όλ‘) |
μΌλ° μ»¬λΌ (κΈ°λ³Έ ν€ μΈ) |
물리μ μ λ ¬ |
λ°μ΄ν°κ° μ λ ¬λ¨ |
λ°μ΄ν°κ° μ λ ¬λμ§ μμ |
μΈλ±μ€ κ°μ |
νλλ§ μμ± κ°λ₯ |
μ¬λ¬ κ° μμ± κ°λ₯ |
λ°μ΄ν° μ κ·Ό λ°©μ |
μ§μ λ°μ΄ν° μ κ·Ό |
ν¬μΈν°λ₯Ό ν΅ν΄ λ°μ΄ν° μ κ·Ό |
μ½κΈ° μ±λ₯ |
λΉ λ¦ |
λΉ λ¦ (νμ§λ§ ν¬μΈν° λ¨κ³ νμ) |
μ°κΈ° μ±λ₯ |
λΉκ΅μ μμ μ |
μ°κΈ° μ±λ₯ μ ν κ°λ₯ |
μ μ₯ κ³΅κ° |
λΉκ΅μ μ μ |
μΆκ° μ μ₯ κ³΅κ° νμ |
β
4οΈβ£ μΈμ Secondary Indexλ₯Ό μ¬μ©ν΄μΌ ν κΉ?
1οΈβ£ μμ£Ό κ²μνλ 컬λΌ.
- νΉμ 컬λΌμ μμ£Ό μ¬μ©νμ¬ λ°μ΄ν°λ₯Ό μ‘°νν λ.
2οΈβ£ WHERE μ μ¬μ© λΉλκ° λμ 컬λΌ.
- νΉμ 쑰건μΌλ‘ μμ£Ό νν°λ§ν λ.
3οΈβ£ JOIN μ°μ° μ΅μ ν.
- λ€λ₯Έ ν
μ΄λΈκ³Ό JOINν λ ν€λ‘ μμ£Ό μ¬μ©λλ 컬λΌ.
π μ 리.
- Secondary Index(보쑰 μΈλ±μ€)λ κΈ°λ³Έ ν€λ Clustered Index(ν΄λ¬μ€ν°ν μΈλ±μ€) μΈμ λ€λ₯Έ 컬λΌμ λν΄ μΆκ°λ‘ μμ±λλ μΈλ±μ€.
-
μ£Όλ‘ μμ£Ό μ‘°νλλ νΉμ 컬λΌμ λν κ²μ μ±λ₯μ κ°μ νκΈ° μν΄ μ¬μ©.
- νμ§λ§ λ무 λ§μ Secondary Indexλ₯Ό μμ±νλ©΄ μ°κΈ° μ±λ₯ μ ν λ° μ μ₯ κ³΅κ° λλΉκ° λ°μν μ μμ
π ν΅μ¬ ν¬μΈνΈ.
- μ½κΈ° μ±λ₯ μ΅μ ν.
- λ€μ€ μμ± κ°λ₯.
-
μ°κΈ° μ±λ₯ μ ν μ£Όμ.
π Secondary Indexλ λ°μ΄ν°λ² μ΄μ€ μ€κ³ μ μ‘°ν ν¨ν΄κ³Ό λ°μ΄ν° λ³κ²½ λΉλλ₯Ό κ³ λ €νμ¬ μ μ€νκ² μ νν΄μΌ ν¨.