MySQL 정리 - Scale Out


  • 데이터 복제(Replication)
    • 장점
      • 물리적으로 독립적인 디스크 영역에 데이터를 복제하여 데이터를 이중화 할 수 있다.
      • 디스크 읽기 분산이 가능하다.
    • 단점
      • 데이터 반영은 오직 마스터 노드에서만 가능하므로 쓰기 분산은 불가능하다.
  • Sharding
    • 데이터를 여러 노드에 분리하여 저장 하는 방식
    • 장점
      • 여러 노드에 데이터가 분산되어 있으므로 쓰기 분산과 읽기 분산이 함께 제공된다.
    • 단점
      • 이중화가 안된다.
      • 두 개 이상의 샤드에 대한 JOIN 연산을 할 수 없다.
      • auto increment (serial) 등은 샤드별로 달라질 수 있다.
      • last_insert_id() 값은 유효하지 않다.
      • shard key column 값은 update하면 안 된다(delete - insert 사용).
      • 하나의 트랜잭션에서 두 개 이상의 샤드에 접근할 수 없다.
    • 구성 방법
      • 어플리케이션 단에 샤딩 로직 내장.
      • SpockProxy와 같은 미들티어 플랫폼을 이용.
        • 저장 프로시저와 트랜잭션 지원의 제한등과 같이 여러가지 한계들이 존재한다.
  • Clustering
    • NDB Storage Engine만 지원함.
    • 운영 사례가 없음