DB Partitioning
배경
- 서비스 크기↑ → DB Data↑ → 용량의 한계와 성능저하
- VLDB(Very Large DBMS)와 같이 하나의 DBMS에 너무 큰 table이 들어가면서 용량과 성능 측면에서 많은 이슈가 발생 Table을 ‘파티션(partition)’이라는 작은 단위로 나누어 관리하는 ‘파티셔닝(Partitioning)’기법 생성 데이터베이스를 분산 처리와 성능 저하 방지
개념
- 논리적 데이터 Element → Entities
- Big Table, Index → Partition ( 물리적 데이터 분할이 있더라도 DB에 접근하는 Application은 인식못함 )
성능(Performance)
- 특정 DML과 Query의 성능을 향상
- 주로 대용량 Data Write 환경에서 효율적
- Full Scan에서 Data Access Range를 줄여서 성능 향상
- Insert가 많은 OLTP System에서 Insert 작업을 Partition들로 분산시켜 경합을 줄임
가용성(Availability)
- 물리적인 파티셔닝으로 인해 전체 데이터 훼손 가능성이 줄어들고 데이터 가용성이 향상
- Partition 별로 독립적 백업 및 복구가 가능
- Table Partition 단위로 Disk I/O를 분산하여 경합을 줄여 Update 성능 향상
관리용이성(Manageability)
- Big Table 제거하여 관리
파티셔닝의 종류
1. 수평 ( horizontal ) 파티셔닝
- 하나의 테이블의 각 행을 다른 테이블에 분산
2. 수직(vertical) 파티셔닝
- 테이블의 일부 열을 빼내는 형태로 분할
DB Partitioning 장단점 및 종류, 분할 기준
https://gmlwjd9405.github.io/2018/09/24/db-partitioning.html