일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- resilience4j
- springboot
- jvm
- closeable
- java
- 동작방식
- 코딩테스트
- 4-way-handshake
- n+1
- execution engine
- Hotspot VM
- tcp
- try-catch-finally
- wagon-ssh
- Class Loader
- webflux
- AutoCloseable
- GC
- circuitbreaker
- optional
- intelij
- 람다표현식
- Runtime data area
- jetbrain
- feign
- try-catch
- 날짜쿼리
- try-with-resources
- zipWith
- Kotlin
- Today
- Total
JuBin's personal study blog
[DataBase] 파티셔닝과 샤딩 본문
데이터베이스 파티셔닝과 샤딩은 모두 대용량 데이터를 효과적으로 관리하고 검색하기 위한 데이터베이스 아키텍처 전략입니다. 이 두 기법은 비슷해 보일 수 있지만, 개념적으로 약간 다른 점이 있습니다.
데이터베이스 파티셔닝
데이터베이스 파티셔닝은 단일 데이터베이스 내에서 데이터를 여러 파티션으로 분할하는 프로세스입니다. 이 파티션은 각기 다른 테이블, 인덱스, 혹은 같은 테이블 내의 서로 다른 부분이 될 수 있습니다. 파티션의 주요 목적은 성능 향상, 관리 용이성 및 데이터의 가용성을 높이는 것입니다.
파티셔닝은 주로 큰 테이블을 관리 가능한 부분으로 나누는 데 사용되며, 파티션은 일반적으로 데이터의 특정 키값(예: 날짜, 지역 등)에 따라 생성됩니다. 예를 들어, 매일 생성되는 대량의 로그 데이터가 있는 경우 이 데이터를 날짜별로 파티셔닝할 수 있습니다.
데이터베이스 샤딩
수평 파티셔닝(horizontal partitioning)과 비슷한 개념입니다. 하지만 수평 파티셔닝은 하나의 데이터베이스에서 분할이 이루어 이루어 지고, 데이터베이스 샤딩은 하나의 데이터베이스를 여러 개의 물리적으로 분리된 데이터베이스로 분할 합니다. 이 분할된 각각의 물리적인 데이터베이스를 샤드라고 부릅니다. 각 샤드는 독립적인 서버에 위치할 수 있으며, 전체 데이터베이스 시스템의 성능을 향상시키고 스케일링을 가능하게 합니다.
샤딩은 데이터베이스를 수평으로 분할하며, 각 샤드에는 테이블의 다른 행 세트가 포함됩니다. 이는 예를 들어, 유저 ID, 지리적 위치 등의 기준에 따라 이루어질 수 있습니다.
파티셔닝과 샤딩의 차이점
정리하자면 데이터베이스 파티셔닝과 샤딩 모두 데이터를 분할하는 방법이지만, 가장 큰 차이점은 파티셔닝은 한 데이터베이스 시스템 내에서 이루어지며, 샤딩은 여러 물리적 데이터베이스 시스템 간에 데이터를 분배한다는 점입니다. 이에 따라, 샤딩은 대체로 파티셔닝보다 더 복잡한 관리와 조정을 필요로 합니다. 그러나, 샤딩은 데이터베이스의 수평적 확장을 가능하게 함으로써 더 큰 규모의 데이터 관리를 가능하게 합니다.
'DataBase' 카테고리의 다른 글
[DataBase] 트랜잭션 격리수준(Isolation Level) (0) | 2023.05.21 |
---|---|
[DataBase] 트랜잭션의 특성(ACID) (1) | 2023.05.21 |
[PostgreSQL] Drop Database시 오류 (0) | 2021.02.02 |
[PostgreSQL] psql 명령어 정리 (1) | 2021.01.12 |
[PostgreSQL] pg_dumpall 전체백업하기 (0) | 2021.01.12 |