파티셔닝이란?
- 테이블(table)을 '파티션(partition)'이라는 작은 단위로 나누어 관리하는 기법
- 데이터베이스를 분산 처리하여 성능이 저하되는 것을 방지하고 관리를 보다 수월하게 함
- 장점
- 가용성(Availability) : 물리적인 노드 분리에 따라 전체 DB 내의 데이터 손상 가능성이 줄어들고, 데이터 가용성이 향상됨
- 관리 용이성(Manageability) : 큰 테이블을 제거하여 관리를 쉽게할 수 있다
- 성능(Perfomance) : 특정 DML과 Query 성능을 향상시키며 대용량 데이터 write 환경에서 효율적이다.
- 단점
- 테이블 간 join 비용 증가
- 파티션 제약 : 테이블과 인덱스를 별도로 파티션 할 수 없다.
수직 파티셔닝(Vertical Partitioning)
- 컬럼을 나눠 새로운 테이블로 만들어서 나눠갖는 것
- 하나의 엔티티를 2개 이상으로 분리하는 작업
수평 파티셔닝(Horizontal Partitioning) = 샤딩(Sharding)
- 하나의 테이블의 각 행을 다른 테이블에 분산시키는 것
- 샤딩과 동일한 개념
- 스키마(schema)가 같은 데이터를 두 개 이상의 테이블에 나누어 저장하는 것
*스키마 : 데이터베이스의 구조와 제약조건에 관해 전반적인 명세를 기술한 것
(개체+속성+관계+제약조건)
참고