[sql] 샤드 분산 (Shard Distribution)

SQL 데이터베이스 시스템에서 샤드 분산은 대규모 데이터셋을 여러 노드로 분할하는 프로세스를 의미합니다. 각 샤드는 일부 데이터만을 저장하고, 샤딩 키를 사용하여 특정 쿼리를 처리할 때 어떤 샤드에 접근해야 하는지 결정합니다.

샤딩 키 선택

샤딩 키를 선택함에 있어 중요한 고려 사항은 데이터의 균형을 유지하는 것입니다. 즉, 샤드 간 데이터 분포를 균등하게 유지하여 부하를 고르게 분산시키는 것이 중요합니다.

CREATE TABLE users (
    id INT NOT NULL,
    name VARCHAR(100),
    PRIMARY KEY (id)
) 
SHARD KEY(id);

위의 예제는 id 컬럼을 샤딩 키로 사용하여 users 테이블을 분산하는 방법을 보여줍니다.

샤드 분산 방식

샤드 분산은 수평 분할(Horizontal Partitioning)과 수직 분할(Vertical Partitioning) 방식이 있습니다. 수평 분할은 특정 컬럼 값을 기준으로 데이터를 레코드 수준으로 분할하고, 수직 분할은 컬럼을 기준으로 데이터를 분할합니다.

마이그레이션

데이터셋의 크기가 변화하거나 샤드의 갯수가 변경될 때 샤드 분산 전략을 수정해야 할 수 있습니다. 이러한 경우 샤드 분산을 조정하기 위한 마이그레이션 작업이 필요합니다.


해당 내용은 참고 자료를 기반으로 작성되었습니다.