답변
데이터 파티셔닝을 해야할 것 같습니다
청크?
- 큰 데이터 집합을 더 작고 관리하기 쉬운 부분을 나누는 것을 말합니다.
- 파티셔닝을 통해 쿼리가 특정 파티션에만 접근하도록 하는 것은 DB가 쿼리를 실행 시 필요한 데이터가 포함된 파티션만을 대상으로 검색을 수행하게 함으로써 이루어집니다.
- 이를
파티션 프루닝(partition pruning)
이라고 한다.- 예를 들어
- 시간 기반으로 파티셔닝된 테이블이 있음.
- 2020년 데이터
- 2021년 데이터
등으로 파티션이 나뉘어져 있는데,
- 사용자가 2021년 데이터만을 요청하는 쿼리를 실행하는 경우, 데이터베이스는 자동으로 2021년 파티션만을 검색하고, 나머지 파티션을 무시하게 된다.
- ❗검색의 범위가 줄어들고, 결과적으로 쿼리의 성능이 향상된다고 한다.
샤딩도 있습니다.
샤딩은 DB를 수평적으로 분할하는 방법입니다.
큰 데이터베이스를 작은 샤드
라고 불리는 여러 개의 데이터베이스로 나누는 것을 의미합니다.
각 샤드의 경우 데이터베이스의 독립적인 부분으로 작동, 전체 DB의 부하를 분산시키는 역할을 한다고 합니다.
수평, 수직 샤딩
모든 샤드가 동일한 스키마
를 가짐해시 기반 샤딩 ( Hash-Based Sharding )
범위 기반 샤딩 ( Range-Based Sharding )
날짜 범위
나 숫자 범위
를 기준으로 데이터를 샤드에 할당한다.사용자 ID가 1부터 1000까지인 데이터를
사용자 ID 가 1001부터 2000까지인 데이터를
- 샤드 B
에 저장하는 식이다.
인메모리 DB에 대해서 고려
읽기 전용 복제본(Replica)을 사용