λ°μ΄ν°λ² μ΄μ€ λΆν (Partitioning) μ΄λ?
λ°μ΄ν°λ² μ΄μ€ λΆν μ λ°μ΄ν°λ₯Ό μ¬λ¬ κ°μ μμ μ‘°κ°μΌλ‘ λλλ μμ μΌλ‘ μ΄λ κ² λΆν λ λ°μ΄ν°λ€μ λ°μ΄ν° κ΄λ¦¬ μ©μ΄μ±, μ±λ₯, κ°μ©μ± λ±μ ν₯μμ μν΄ μ¬μ©λλ©° λΆν λ κ° λΆλΆμ 'νν°μ 'μ΄λΌκ³ λΆλ₯Έλ€.
λΆν κΈ°λ² μ’ λ₯
μν λΆν (Horizontal Partitioning)
μν λΆν μ λ°μ΄ν°λ² μ΄μ€μ ν μ΄λΈμ ν(Row) λ¨μλ‘ λλλ κ²μ μλ―Ένλ€.
μλ₯Ό λ€μ΄, κ°μμ "κ³ κ° μ 보"λΌλ ν μ΄λΈμ κ° κ³ κ°μ μ΄λ¦, λμ΄, μ£Όμ, μ΄λ©μΌ λ±μ΄ μ μ₯λμ΄ μκ³ , μ΄ "κ³ κ° μ 보" ν μ΄λΈμ μν λΆν νλ €κ³ νλ κ²½μ°
- μ§μλ³λ‘ λΆν : κ³ κ° μ 보λ₯Ό ν μ§μμ μ¬λ κ³ κ°λ€κ³Ό λ€λ₯Έ μ§μμ μ¬λ κ³ κ°λ€λ‘ λλλ€. μλ₯Ό λ€μ΄, ν ν μ΄λΈμ λ―Έκ΅ κ³ κ°μ μ 보λ§μ ν¬ν¨νκ³ , λ€λ₯Έ ν μ΄λΈμ μ λ½ κ³ κ°μ μ 보λ§μ ν¬ν¨ν μ μμ
- κ°μ μ°λλ³λ‘ λΆν : κ³ κ° μ 보λ₯Ό κ°μ ν μ°λμ λ°λΌ λλλ€. μλ₯Ό λ€μ΄, 2019λ κ°μ μλ€μ ν ν μ΄λΈμ, 2020λ κ°μ μλ€μ λ€λ₯Έ ν μ΄λΈμ μ μ₯ν¨
μ΄λ κ² μν λΆν μ νλ©΄, κ°κ°μ μμ ν μ΄λΈμ λ°μ΄ν°λ₯Ό μΌλΆλΆλ§ λ΄λΉνλ―λ‘ λ°μ΄ν°λ² μ΄μ€ μμ€ν μ μ±λ₯μ΄ ν₯μλ μ μλ€. λν νΉμ μ§μμ΄λ κΈ°κ°μ ν΄λΉνλ λ°μ΄ν°λ§ νμν κ²½μ°μ ν΄λΉ ν μ΄λΈλ§μ κ²μνλ©΄ λκΈ° λλ¬Έμ κ²μ μλλ λΉ¨λΌμ§λ€. μν λΆν μ λ°μ΄ν°λ₯Ό λ μμ λ©μ΄λ¦¬λ‘ μͺΌκ°λ κ²μ΄λ―λ‘, μ 체 λ°μ΄ν°λ² μ΄μ€μ κ±Έμ³ μΏΌλ¦¬κ° λΆμ°λμ΄ λΆνλ₯Ό λΆμ°μν€λ ν¨κ³Όλ₯Ό μ»μ μ μμ
μ₯μ :
- μ±λ₯ ν₯μ: λ°μ΄ν°λ₯Ό μ¬λ¬ νν°μ μΌλ‘ λλ μ λμμ μ²λ¦¬νλκΉ λΉ¨λΌμ§.
- νμ₯μ±: μλ‘μ΄ μλ²λ₯Ό μΆκ°νλ©΄ λ λ§μ λ°μ΄ν° μ²λ¦¬ κ°λ₯.
- 보μ: κ° νν°μ λ³λ‘ κΆν λ°λ‘ μ€μ κ°λ₯.
- μ μ§λ³΄μ μ¬μ: μμ νν°μ κ΄λ¦¬κ° νΈν¨.
λ¨μ :
- λ°μ΄ν° μ€λ³΅: νΉμ μμ λλ¬Έμ λ°μ΄ν° μ€λ³΅λ μ μμ.
- 쿼리 볡μ‘μ±: λ°μ΄ν° μ°ΎκΈ° μν΄ μ¬λ¬ νν°μ μ μ°ΎμμΌ ν μ μμ.
- λΆν κ· ν: νν°μ κ°μ λΆν κ· λ±νκ² λΆμ°μν€κΈ° μ΄λ €μ.
- λ°μ΄ν° λ¬΄κ²°μ± κ΄λ¦¬: λ°μ΄ν° μΌκ΄μ± μ μ§μ κ΄λ¦¬ μ΄λ €μ.
μμ§ λΆν (Vertical Partitioning)
μμ§λΆν (Vertical Partitioning)μ ν
μ΄λΈμ μ΄(Column)μ κΈ°μ€μΌλ‘ λΆν νλ ννμ΄λ€. λ§μ½ ν ν
μ΄λΈμ μλ§μ 컬λΌμ΄ μ‘΄μ¬νλ€λ©΄ λμ€ν¬μ μ¬λ¬ λΈλ‘μ λ°μ΄ν°κ° μ μ₯λλ―λ‘ I/O μ±λ₯ μ νλ₯Ό λΆλ¬μ¬ μ μλ€. μ΄λ κ² μ»¬λΌμ΄ λ§μμ§λ©΄ λ‘μ° μ²΄μ΄λκ³Ό λ‘μ° λ§μ΄κ·Έλ μ΄μ
μ΄ λ§μμ Έμ μ±λ₯μ΄ μ νλλ€.
λ‘μ° μ²΄μ΄λ(Row Chaining)
κΈΈμ΄κ° λ무 컀μ νλμ λΈλ‘μ μ μ₯λμ§ λͺ»νκ³ λ€μμ λΈλ‘μ λλμ΄μ Έ μ μ₯
λ‘μ° λ§μ΄κ·Έλ μ΄μ
(Row Migration)
μμ λ λ°μ΄ν°λ₯Ό ν΄λΉ λ°μ΄ν° λΈλ‘μ μ μ₯νμ§ λͺ»νκ³ λ€λ₯Έ λΈλ‘μ λΉ κ³΅κ°μ μ μ₯
λ‘μ° μ²΄μ΄λκ³Ό λ‘μ° λ§μ΄κ·Έλ μ΄μ
μ΄ λ°μνμ¬ λ§μ λΈλ‘μ μ¬μ©νκ² λλ©΄, λΆνμν I/Oκ° λ°μνμ¬ μ±λ₯μ΄ μ νλλ€. λ§μ I/O λ°μμ μ±λ₯μ μ§μ μ μΈ μν₯μ μ£Όλ―λ‘ λ§€μ° μ€μν λ¬Έμ λ€. λν λ°μ΄ν°μ λν λ²μ κ²μμ ν κ²½μ° λ λ§μ I/Oλ₯Ό μ λ°νλ―λ‘ μ±λ₯ μ νλ₯Ό μΌμΌν¨λ€. μλ§μ 컬λΌμ λμμ μ‘°ννλ κ²½μ°λ λλ¬Όλ€. κ°κ°μ μ‘°ν 쑰건μ λ§κ² μ΄μ©λλ 컬λΌλ€λ‘ κ·Έλ£Ήμ λ¬Άμ΄μ ν
μ΄λΈ λΆν μ κ²ν ν μ μλ€. μ‘°νλ μ²λ¦¬μ λν λΆμ°μ κ°λ₯νκ² νλ μΉΌλΌλ€μ κΈ°μ€μΌλ‘ ν
μ΄λΈμ λΆλ¦¬νλ€λ©΄ μ±λ₯ κ°μ μ ν° λμμ΄ λ μ μλ€.
μ) λ΄μ€μ¬μ΄νΈλ₯Ό μ°Ύλ κ³ κ°λ€μ μ΅κ·Όμ λ°μ΄ν°λ₯Ό κ°μ₯ λ§μ΄ μ‘°νν κ²μ΄λ€. μ΄ κ²½μ° 1κ°μ μ μ λ°μ΄ν°λ₯Ό λ€λ₯Έ ν μ΄λΈμ λλ©΄, ν¨μ¬ ν¨μ¨μ μΌλ‘ κ²μν μ μλ€.
μ₯μ :
- μ±λ₯ κ°μ : μμ£Ό μ¬μ©νλ μ΄λ§ κ°μ Έμ€λκΉ μΏΌλ¦¬ μλκ° λΉ¨λΌμ§.
- 보μ κ°ν: μ€μν μ΄μ λ°λ‘ μ μ₯ν΄ λ μμ ν¨.
- μ¬μ΄ μ μ§λ³΄μ: μ΄ λ¨μλ‘ λ°μ΄ν°λ² μ΄μ€ κ΄λ¦¬κ° νΈν¨.
λ¨μ :
- 쿼리 볡μ‘μ±: νμν μ 보λ₯Ό μ»κΈ° μν΄ μ¬λ¬ ν μ΄λΈμ μ°Έμ‘°ν΄μΌ ν μ μμ.
- μ€λ³΅ λ°μ΄ν°: μ¬λ¬ ν μ΄λΈμ λμΌν μ λ³΄κ° μ€λ³΅ μ μ₯λ μ μμ.
- νμ₯μ± μ ν: μ΄ κΈ°λ°μΌλ‘ λΆν λμ΄ μλ‘μ΄ λ°μ΄ν° μΆκ° μ΄λ €μΈ μ μμ.
μνλΆν or μμ§λΆν
ν μ΄λΈμ μ»¬λΌ κ°μμ λ°μ΄ν° μμ μ’ ν©μ μΌλ‘ νλ¨νμ¬ μμ λ°λ₯Έ λμ©λ ν μ΄λΈμΈμ§ νλ¨ νλ€.
λ§μ½ μ»¬λΌ κ°μμ λ°λ₯Έ κ²μ΄λΌλ©΄, νΈλμμ μ νΉμ±μ λ°λΌ ν μ΄λΈμ 1:1 ννλ‘ λΆλ¦¬νλ μμ§λΆν μ νλ©΄ λλ€.
λ°λ©΄ λ°μ΄ν° μμ λ°λ₯Έ κ²μ΄λΌλ©΄, μ μ ν νν°μ μ μ ννκ³ μ¬λ¬ κ°μ 물리μ μ€νμ΄μ€λ‘ μ μ₯νλ μνλΆν μ νλ©΄ λλ€.
κ²°λ‘ μ Row λ¨μμ νΈλμμ (μνλΆν ) μΈμ§ μ»¬λΌ λ¨μμ νΈλμμ (μμ§λΆν ) μΈμ§ νλ¨νλ©΄ λλ€.
λΆν ν€ κΈ°μ€ λΆν κΈ°λ²
νν°μ μ’ λ₯λ‘λ λ²μ(Range), λͺ©λ‘(List), ν΄μ(Hash), ν©μ±(Composite) νν°μ μ΄ μλ€.
κ°μ₯ λ리 μ΄μ©νλ Range νν°μ μ μ£Όλ‘ λ μ§λ₯Ό κΈ°μ€μΌλ‘ νλ κ²½μ°κ° λ§λ€. μ΄ κ²½μ° λ°μ΄ν°κ° κ· λ±νκ² λλμ΄μ Έμ λΉμ·ν μ±λ₯ κ°μ μ 보μ₯νλ€. λν λ³΄κ΄ μ£ΌκΈ°μ λ°λΌμ νμμΉ μλ λ°μ΄ν°λ μ½κ² μ§μ°κ³ κ΄λ¦¬ν μ μλ€.
λΆλ₯κ° κ°λ₯ν PK 컬λΌμ μ΄μ©ν List νν°μ λ λ§μ΄ μ¬μ©νλ€.
λΆν κΈ°μ€ | μ€λͺ |
λ²μ λΆν (Range Partitioning) |
- λΆν ν€ κ°μ΄ λ²μ λ΄μ μλμ§ μ¬λΆλ‘ ꡬλΆνλ€. - μ: μ°νΈ λ²νΈλ₯Ό λΆν ν€λ‘ μν λΆν νλ κ²½μ°μ΄λ€. |
λͺ©λ‘ λΆν (List Partitioning) |
- κ° λͺ©λ‘μ νν°μ
μ ν λΉ λΆν ν€ κ°μ κ·Έ λͺ©λ‘μ λΉμΆμ΄ νν°μ
μ μ ννλ€. - μλ₯Ό λ€μ΄, CountryλΌλ 컬λΌμ κ°μ΄ Iceland, Norway, Sweden, Finland, Denmarkμ€ νλμ μλνμ κ°μ Έμ¬λ λΆμ λ½ κ΅κ° νν°μ μ κ΅¬μΆ ν μ μλ€. |
ν΄μ λΆν (Hash Partitioning) |
- ν΄μ ν¨μμ κ°μ λ°λΌ νν°μ
μ ν¬ν¨ν μ§ μ¬λΆλ₯Ό κ²°μ νλ€. - λ°μ΄ν°μ κ΄λ¦¬ 보λ€λ μ±λ₯ ν₯μμ λͺ©μ μ λλ€. - μλ₯Ό λ€μ΄, 4κ°μ νν°μ μΌλ‘ λΆν νλ κ²½μ° ν΄μ ν¨μλ 0-3μ μ μλ₯Ό λλ €μ€λ€. |
ν©μ± λΆν (Composite Partitioning) |
- λΆν κΈ°μ€μΌλ‘ μ¬λ¬ κΈ°λ²μ κ²°ν©ν΄ μ¬μ©νλ€. |
λΌμ΄λ λ‘λΉ λΆν (Round Robin Partitioning) |
- λΌμ΄λλ‘λΉμ νν°μ
μ νμ κ³ λ₯Έ λΆν¬λ₯Ό μν λ μ¬μ©νλ€. - *ν΄μλΆν κ³Ό λ¬λ¦¬ λΆν μΉΌλΌμ λͺ μν νμκ° μλ€. - νμ νλ©΄μ μλ‘μ΄ νμ΄ νν°μ μ ν λΉλλ€. - νλμ μ€μμ²λ¦¬μ₯μΉλ₯Ό μμμ νλ‘μΈμ€κ° μ’ λ£λ λκΉμ§ μ°¨μ§νλ κ²μ΄ μλλΌ, μ¬λ¬ νλ‘μΈμ€λ€μ΄ μ€μμ²λ¦¬μ₯μΉλ₯Ό μ‘°κΈμ© λμκ°λ©° ν λΉλ°μ μ€νλλ λ°©μμΌλ‘, 리λ μ€λ₯Ό ν¬ν¨ν λλΆλΆμ μμ€ν μμ μ¬μ©νλλ°©μμ΄λ€. μ: 무λμ΄ μ¬λ¦, μΈ λͺ μ μμ΄λ€μ΄ νλμ μμ΄μ€ν¬λ¦Όμ 1/3μ© λλμ΄ λ¨ΉμΌλ € νλ€. λ¨Όμ Aκ° 1/3μ λ¨Ήκ³ , κ·Έ λ€μ Bκ° 1/3μ λ¨Ήκ³ , λ§μ§λ§μΌλ‘ Cκ° λλ¨Έμ§λ₯Ό λ¨Ήλ κ²λ³΄λ€λ, μΈ λͺ μ΄ μ‘°κΈμ© λμκ°λ©° λ¨Ήλ νΈμ΄ λͺ¨λ μμ΄λ€μ κ°μ¦μ λμμ ν΄μν μ μμ κ²μ΄λ€. |
Round Robin Partitioning μ°Έκ³ μλ£1
Round Robin Partitioning μ°Έκ³ μλ£2 (Youtube)
νν°μ λ μ°Έκ³ μλ£ (IBM)
-κ΄λ ¨ λ¬Έμ (μ 보μ²λ¦¬κΈ°μ¬ 2021λ
2ν 41λ²)
λ³λ ¬ λ°μ΄ν°λ² μ΄μ€ νκ²½ μ€ μν λΆν μμ νμ©λλ λΆν κΈ°λ²μ΄ μλ κ²μ?
1. λΌμ΄λ λ‘λΉ
2. λ²μ λΆν
3. μμΈ‘ λΆν
4. ν΄μ λΆν
/* μ λ΅ 3λ² - μμΈ‘λΆν μ μμ.
'DB' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[SQL] λ°μ΄ν°λ² μ΄μ€ κ°λ‘ ( Chapter1 ~ 11 ) (0) | 2022.08.29 |
---|