파티셔닝이란?
데이터베이스를 여러 부분으로 분할하는 것이다. 하나의 dbms에 너무 큰 테이블이 들어가면 용량이나 성능 부분에서 이슈가 있으므로, 큰 테이블이나 인덱스를 작은 파티션 단위로 나누어 관리하는 기법을 의미한다.
장점
- DML 수행 시, full scan할 때 보다 데이터 access 범위를 줄여 속도가 빠르다.
- 대용량 insert 및 update 수행 시, 여러 partition을 대상으로 병렬적으로 수행이 가능하기 때문에 빠르다.
단점
- join 비용 증가
- 대용량 데이터가 아닐 경우, 이점이 딱히 없다.
파티셔닝의 종류
수평 파티셔닝
하나의 테이블의 각 행을 다른 테이블에 분산시키는 것
스키마를 복제하고 샤드키를 기준으로 데이터를 나누는 것을 의미한다.
(추가) 샤딩
같은 스키마를 가진 데이터를 다수의 데이터베이스(db가 다름)에 분산하여 저장하는 기법
샤드가 나눠져 있으므로, 서버간 연결 과정이 많아지고, 하나의 서버가 고장나면 무결성이 깨질 수 있다.
수직 파티셔닝
테이블의 특정 칼럼을 기준으로 나누어 저장하는 형태를 의미한다.
자주 사용하는 컬럼을 분리시켜 성능을 향상시킬 수 있다. 필요 없는 칼럼을 조회하지 않으므로 훨씬 더 많은 row를 메모리에 올릴 수 있다.
Sharding 되어 있는 시스템에서 data 탐색
- 질의 분석
- 샤드키 기준으로 적절할 샤드 선택
- data 조회
Reference
https://gmlwjd9405.github.io/2018/09/24/db-partitioning.html
[DB] DB 파티셔닝(Partitioning)이란 - Heee's Development Blog
Step by step goes a long way.
gmlwjd9405.github.io
https://code-lab1.tistory.com/202
[DB] 파티셔닝(Partitioning)이란? 샤딩(Sharding)이란? 파티셔닝과 샤딩의 차이점
파티셔닝(Partitioning)이란? 파티셔닝이란 데이터베이스를 여러 부분으로 분할하는 것이다. VLDB(Very Large DBMS)와 같은 하나의 DBMS에 너무 큰 테이블이 들어가면서 용량과 성능 측면에서 많은 이슈가
code-lab1.tistory.com
https://d2.naver.com/helloworld/14822
'Computer Science > Database' 카테고리의 다른 글
CAP 이론 (0) | 2024.04.23 |
---|---|
클러스트링과 Replication (0) | 2024.04.23 |
DB Index (0) | 2024.04.23 |
Join & Driving Table (0) | 2024.04.23 |
Transaction (0) | 2024.04.23 |