ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Distributed Relational Database
    이커머스 devops 2025. 11. 25. 09:00

    Distributed Relational Database

    • Relational Database : 관계형 데이터베이스
    • Distributed Relational Database : 분산 관계형 데이터베이스 

     

     

    [ 서비스가 활성화되면서 단일 DB로 처리하기에 부담이 생긴 상황 ]

    - 저장해야 할 데이터와 트래픽이 많아짐

    • 가장 간단한 방법 : Scale-up, DB 장비 성능 업그레이드
    • Scale-up의 한계 : Scale-out 고려, 장비를 여러 대 사용하여 수평 확장

     

     

    [ 데이터베이스에 대한 하나의 분산 시스템 구성 ]

    - 샤딩을 이용해 데이터를 여러 DB에 분산한다

    • 샤딩 테이블 : 데이터를 여러 DB에 분산하여 저장하는 기술
    • 샤드 : 샤딩된 각각의 데이터 단위
      • 물리적 샤드 : 데이터를 물리적으로 분산한 실제 단위
        • 대규모 데이터 분산 저장 및 성능 향상
      • 논리적 샤드 : 데이터를 논리적으로 분산한 가상 단위
        • 물리적 확장 시, Client 변경 없이 유연한 매핑

     

     

     

    [ 수직샤딩 ]

    • 데이터를 수직으로 분할하는 방식 (컬럼 단위)
    • 각 샤드가 적은 수의 컬럼을 저장하기 때문에 성능 및 공간 이점이 생긴다
    • 데이터의 분리로 인해 조인 또는 트랜잭션 관리가 복잡해질 수 있다
    • 수평적 확장에 제한이 있다

     

     

     

    [ 수평샤딩 ]

    • 데이터를 수평으로 분할하는 방식 (행 단위)
    • 각 샤드에 데이터가 분산 저장되므로 성능 및 공간 이점이 생긴다
    • 데이터의 분리로 인해 조인 또는 트랜잭션 관리가 복잡해질 수 있다
    • 수평으로 분할되므로 수평적 확장에 용이하다 

     

     

     

    [ 범위 기반 샤딩 ]

    • 데이터를 특정 값(shard key)의 특정 범위에 따라 분할
    • 범위 데이터 조회 유리
    • 데이터 쏠림 현상 발생 가능

     

     

    [ 해시 기반 샤딩 ]

    • 데이터를 특정 값(Shard Key)의 해시 함수에 따라 분할하는 법
    • 균등한 분산을 위한 Shard Key와 해시 함수가 필요, 데이터 쏠림 현상 있을 수 있음
    • 범위 데이터 조회에 불리할 수 있다

     

     

     

    [ 디렉토리 기반 샤딩 ]

    • 디렉토리를 이용하여 데이터가 저장된 샤드를 관리하는 기법 매핑 테이블을 이용하여 각 데이터가 저장된 샤드 관리
    • 디렉토리 관리 비용 있으나 데이터 규모에 따라 유연한 관리 가능
    728x90

    '이커머스 devops' 카테고리의 다른 글

    스프링부트 게시판 (2)  (0) 2025.11.27
    스프링부트 게시판 (1)  (1) 2025.11.25
    OSIV와 성능 최적화  (0) 2025.11.21
    컬렉션 조회 최적화  (0) 2025.11.21
    지연 로딩과 조회 성능 최적화  (0) 2025.11.20
Designed by Tistory.