최근 바뀜
통계
임의의 문서로
도움말
문서
토론
원본 보기
역사 보기
로그인
샤딩 문서 원본 보기
내위키
←
샤딩
이동:
둘러보기
,
검색
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다:
사용자
.
문서의 원본을 보거나 복사할 수 있습니다.
Sharding. [[데이터베이스]]를 수평으로 확장하는 기법 중 하나다. [[데이터베이스]]의 능력을 확장하는 방법은 크게 수직적 방법과 수평적 방법이 있다. 수직적인 방법은 물리적인 서버의 개수는 그대로 두고 서버의 능력을 확장하는 것이다 즉 하드웨어 업그레이드 하든가 저장장치를 더 큰 것을 바꾸든가 하는 것이다. 반면 수평적인 확장 방법은 물리적인 서버의 갯수를 늘려서 서버의 부하를 분산시키는 방법이다. 수평적인 확장 방법은 다시 크게 두 가지 방법으로 나뉘는데 하나는 수직 파티셔닝(vertical partitioning)이고 다른 하나는 수평 파티셔닝이다. 둘 다 덩치 큰 하나의 테이블을 두 개 또는 그 이상으로 쪼개서 분산시키는 것이다. 따라서 수직 파티셔닝은 스키마에 변화가 온다. 수직 파티셔닝은 예를 들어 고객 정보 테이블이 고객의 아이디, 이메일 주소, 우편 주소, 전화번호와 같은 정보를 담고 있다면 수직 파티셔닝은 이 중 우편 주소와 전화번호를 별도의 테이블로 분리시키는 식이다. 분리된 테이블은 기존 테이블의 고유 키를 가지고 있으며 이를 통해 JOIN 연산 같은 방법으로 기존 테이블과 결합해서 쓸 수 있을 것이다. 테이블을 [[스프레드시트]]와 같은 개념으로 본다면 [[스프레드시트]]를 수직으로, 즉 열을 자르는 것이다. 수직 파티셔닝은 테이블의 갯수가 늘어나는 것은 물론 스키마에도 변화가 온다. 반면 수평 파티셔닝은 테이블을 수평으로 자르는 것이다. 즉 스키마 자체는 그대로 두고 레코드를 나눠서 분산 저장하는 거 있다. 예를 들어서 기존의 테이블에 1억 명의 고객 정보가 저장되어 있다면 이를 100만 명 단위로 잘라서 100개 테이블로 만드는 것이다. 그리고 앞으로 새로 저장할 고객 정보들은 적절한 방법을 통해서 이 100개 테이블에 고르게 분산시킬 것이다. 수평 파티셔닝은 스키마는 변하지 않고 테이블의 갯수만 늘어난다. 이러한 파티셔닝은 기본적으로 같은 [[데이터베이스]] 안에서 테이블을 쪼개는 방식으로 구현이 되는데 샤딩은 한 발 더 나아가서 아예 [[데이터베이스]]를 분리시키는 것이다. 즉 파티셔닝을 통해서 한 개 테이블을 두 개로 분할했을 때 각각의 테이블을 물리적으로 다른 [[데이터베이스]] 서버에 배치할 수도 있다. [[Category:데이터베이스]]
이 문서에서 사용한 틀:
틀:각주
(
원본 보기
)
샤딩
문서로 돌아갑니다.
도구
여기를 가리키는 문서
가리키는 글의 최근 바뀜
특수 문서 목록
문서 정보