의견.png

파티셔닝

위키원
ab9405 (토론 | 기여)님의 2019년 8월 12일 (월) 14:03 판
이동: 둘러보기, 검색

파티셔닝(partitioning)은 데이터베이스를 여러 부분으로 분할하는 것이다. 데이터베이스의 분할은 중요한 튜닝 기법으로 데이터가 너무 커졌을때, 조회하는 시간이 길어졌을 때 또는 관리 용이성, 성능, 가용성 등의 향상을 이유로 행해지는 것이 일반적이다. 분할된 각 부분은 '파티션'이라고 부른다. 가장 일반적인 것은 분산 데이터베이스 분할인데 각 파티션은 여러 노드에 분산 배치되어 사용자가 각 노드에서 로컬 트랜잭션을 수행 할 수 있다. 이것은 가용성과 보안을 유지하면서 특정 뷰에 관한 일반 트랜잭션의 성능을 향상시켜준다. 데이터베이스의 분할, 각각 작은 데이터베이스가 되도록 하는 분할 방법과 하나의 테이블과 같이 선택된 요소만 분리하는 방법이 있다. [1]

개요

파티셔닝은 퍼포먼스, availability, maintainability 를 목적으로 논리적인 데이터를 다수의 entity로 분할하는 행위를 말한다. 대부분의 데이터베이스 관리 시스템에서 지원하지만 Mysql 5.1 미만에서는 지원하지 않는다. 샤딩 또한 이 파티셔닝의 종류 중 하나이다. [2]즉, 큰 테이블이나 데이터베이스를 관리하기 쉬운 파티션이라는 작은 단위로 물리적으로 분할하는 것을 말한다. 물리적인 데이터 분할이 있더라도, 데이터베이스에 접근하는 애플리케이션 입장에서는 이를 인식하지 못한다. [3]

등장 배경

서비스의 크기가 점점 커지고 데이터베이스에 저장하는 데이터의 규모 또한 대용량화가 되면서, 기존에 사용하는 데이터베이스 시스템의 용량의 한계와 성능의 저하를 가져오면서 초대형 데이터베이스와 같이 하나의 데이터베이스에 너무 큰 테이블이 드러가게 되면서 이러한 문제점을 해결하기 위하여 테이블을 '파티션'이라는 작은 단위로 나누어 관리하는 '파티셔닝'기법이 나타나게 된것이다. 파티셔닝 기법이 나타나면서 소프트웨어적으로 데이터베이스를 분산처리하여 성능이 저하되는 것을 방지하고 관리를 보다 수월하게 할 수 있게 되었다. [3]

목적

1. 성능(Performance)

  • 특정 데이터 조작 언어(DML)와 쿼리(Query)의 성능을 향상시킨다.
  • 주로 대용량 데이터 Write 환경에서 효율적이다.
  • 풀스캔에서 데이터 허용의 범위를 줄여 성능을 향상시킨다.
  • 많은 테이블이 있는 온라인 트랜잭션 처리 시스템에서 테이블 작업을 작은 단위인 파티션들로 분산시켜 경합을 줄인다.

2. 가용성(Availability)

  • 물리적인 파티셔닝으로 인하여 전체 데이터의 훼손 가능성이 줄어들고 데이터 가용성이 향상된다.
  • 테이블의 파티션 단위로 Disk I/O 를 분산하여 경합을 줄이므로 업데이트 성능을 향상시킨다.
  • 각 분할 영역으로 독립적으로 백업하고 복구할 수 있다.

3. 관리용이성 (Manageability)

  • 큰 테이블을 제거하여 관리를 쉽게 해준다. [3]


특징

종류

분할 기준

각주

  1. 데이터베이스_분할〉, 《위키백과》
  2. 파티셔닝의 정의와 종류 그리고 샤딩〉, 《네이버 블로그》
  3. 3.0 3.1 3.2 [DB_DB_파티셔닝(Partitioning)이란]〉, 《블로그》

참고자료

같이 보기


  의견.png 이 파티셔닝 문서는 블록체인 기술에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.