νŒŒν‹°μ…”λ‹(Partitioning)κ³Ό 샀딩(Sharding)

2022. 7. 16. 15:25Β·πŸ“ Computer Science/✏ Database

1. νŒŒν‹°μ…”λ‹(Partitioning)

μ„œλΉ„μŠ€μ˜ 크기가 점점 컀지고 DB에 μ €μž₯ν•˜λŠ” λ°μ΄ν„°μ˜ 규λͺ¨ λ˜ν•œ λŒ€μš©λŸ‰ν™” λ˜λ©΄μ„œ, 기쑴에 μ‚¬μš©ν•˜λŠ” DB μ‹œμŠ€ν…œμ˜ μš©λŸ‰μ˜ ν•œκ³„μ™€ μ„±λŠ₯의 μ €ν•˜λ₯Ό κ°€μ Έμ˜€κ²Œ λ˜μ—ˆλ‹€.

즉, ν•˜λ‚˜μ˜ DBMS에 λ„ˆλ¬΄ 큰 table이 λ“€μ–΄κ°€λ©΄μ„œ μš©λŸ‰κ³Ό μ„±λŠ₯ μΈ‘λ©΄μ—μ„œ λ§Žμ€ μ΄μŠˆκ°€ λ°œμƒν•˜κ²Œ λ˜μ—ˆκ³  이런 이슈λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•œ λ°©λ²•μœΌλ‘œ table을 νŒŒν‹°μ…˜(partition)μ΄λΌλŠ” μž‘μ€ λ‹¨μœ„λ‘œ λ‚˜λˆ„μ–΄ κ΄€λ¦¬ν•˜λŠ” νŒŒν‹°μ…”λ‹(Partitioning)이 λ‚˜νƒ€λ‚˜κ²Œ λ˜μ—ˆλ‹€.

 

νŒŒν‹°μ…”λ‹μ΄λž€ 큰 tableμ΄λ‚˜ indexλ₯Ό κ΄€λ¦¬ν•˜κΈ° μ‰¬μš΄ νŒŒν‹°μ…˜μ΄λΌλŠ” μž‘μ€ λ‹¨μœ„λ‘œ 물리적으둜 λΆ„ν• ν•˜λŠ” 것을 μ˜λ―Έν•œλ‹€.

  • 물리적인 데이터 뢄할이 μžˆλ”λΌλ„ DB에 μ ‘κ·Όν•˜λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ μž…μž₯μ—μ„œλŠ” 이λ₯Ό μΈμ‹ν•˜μ§€ λͺ»ν•œλ‹€.
  • μ†Œν”„νŠΈμ›¨μ–΄μ μœΌλ‘œ λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό λΆ„μ‚° μ²˜λ¦¬ν•˜μ—¬ μ„±λŠ₯이 μ €ν•˜λ˜λŠ” 것을 λ°©μ§€ν•˜κ³  관리λ₯Ό 보닀 μˆ˜μ›”ν•˜κ²Œ ν•  수 μžˆλ‹€.

 

νŒŒν‹°μ…”λ‹μ—λŠ” μˆ˜ν‰ λΆ„ν• κ³Ό 수직 뢄할이 μžˆλ‹€.

 

수직 λΆ„ν• κ³Ό μˆ˜ν‰ λΆ„ν• 

 

1) 수직 λΆ„ν• (Vertical partitioning)

수직 뢄할은 ν…Œμ΄λΈ” μ—΄μ˜ 일뢀λ₯Ό λΉΌλ‚΄λŠ” ν˜•νƒœλ‘œ λΆ„ν• ν•œλ‹€. 즉, ν…Œμ΄λΈ”μ˜ μΉΌλŸΌμ„ κΈ°μ€€μœΌλ‘œ λ‚˜λˆ„μ–΄ νŒŒν‹°μ…”λ‹ ν•œλ‹€.

μ •κ·œν™”λ„ 수직 νŒŒν‹°μ…”λ‹κ³Ό κ΄€λ ¨λœ 과정이라고 ν•  수 μžˆλ‹€. ν•˜μ§€λ§Œ 수직 νŒŒν‹°μ…”λ‹μ€ 이미 μ •κ·œν™”λœ 데이터λ₯Ό λΆ„λ¦¬ν•˜λŠ” 과정이라고 생각해야 ν•œλ‹€.

 

2) μˆ˜ν‰ λΆ„ν• (horizontal partitioning)

μˆ˜ν‰ 뢄할은 ν•˜λ‚˜μ˜ ν…Œμ΄λΈ”μ˜ 각 행을 λ‹€λ₯Έ ν…Œμ΄λΈ”μ— λΆ„μ‚°μ‹œν‚€λŠ” 것이닀.

 

 

2. 샀딩(Sharding)

μˆ˜ν‰ λΆ„ν• κ³Ό 샀딩은 같은 의미둜 μ‚¬μš©λ˜κ³€ ν•˜μ§€λ§Œ 사싀 λ‘˜μ€ 쑰금 λ‹€λ₯΄λ‹€.

  • μˆ˜ν‰ 뢄할은 같은 λ°μ΄ν„°λ² μ΄μŠ€ λ‚΄μ—μ„œ ν•˜λ‚˜μ˜ 큰 ν…Œμ΄λΈ”μ„ μͺΌκ°œ λΆ„μ‚° μ €μž₯ν•˜λŠ” 기법이닀.
  • 샀딩은 ν•˜λ‚˜μ˜ 큰 ν…Œμ΄λΈ”μ„ μͺΌκ°œ 각각 λ‹€λ₯Έ λ°μ΄ν„°λ² μ΄μŠ€μ— λΆ„μ‚° μ €μž₯ν•˜λŠ” 기법이닀.
μ €μž‘μžν‘œμ‹œ (μƒˆμ°½μ—΄λ¦Ό)
'πŸ“ Computer Science/✏ Database' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
  • λ°μ΄ν„°λ² μ΄μŠ€ 정리
  • λ°μ΄ν„°λ² μ΄μŠ€ ν’€(Database Pool)
  • RDBMS와 NoSQL
  • SQL SELECT
Blxxming
Blxxming
CS 지식과 κ³΅λΆ€ν•˜λ‹€ 배운 것, κ²½ν—˜ν•œ 것 등을 κΈ°λ‘ν•˜λŠ” λΈ”λ‘œκ·Έμž…λ‹ˆλ‹€.
  • Blxxming
    πŸ’‘λ²ˆλœ©πŸ’‘
    Blxxming
  • 전체
    였늘
    μ–΄μ œ
  • 곡지사항

    • Tech Interview
    • πŸ“š Tech (246)
      • πŸ“ Computer Science (96)
        • ✏ OS (12)
        • ✏ Network & Web (10)
        • ✏ Database (11)
        • ✏ Data Structure (6)
        • ✏ Algorithm (40)
        • ✏ Design Pattern (9)
        • ✏ Cloud Computing (3)
        • ✏ (5)
      • πŸ“ Language (73)
        • ✏ Language (6)
        • ✏ C & C++ (11)
        • ✏ C# (19)
        • ✏ JAVA (37)
      • πŸ“ Game (43)
        • ✏ Computer Graphics (2)
        • ✏ Unity (14)
        • ✏ Unreal (26)
        • ✏ (1)
      • πŸ“ Book (34)
        • ✏ Effective (3)
        • ✏ Game Server (16)
        • ✏ Clean Code (14)
        • ✏ (1)
  • hELLOΒ· Designed Byμ •μƒμš°.v4.10.0
Blxxming
νŒŒν‹°μ…”λ‹(Partitioning)κ³Ό 샀딩(Sharding)
μƒλ‹¨μœΌλ‘œ

ν‹°μŠ€ν† λ¦¬νˆ΄λ°”