Backend-RoadMap_Scaling Databases
2023. 3. 23. 19:17ㆍCS/Backend-RoadMap
728x90
Scaling Databases
- 데이터 베이스 확장성
- 응용 프로그램의 변화하는 사용을 지원하기 위해 시스템 리소스의 용량을 확장하거나 축소하는 기능
- 수평확장
- 로드를 공유하기 위해 추가 노드를 가져오는 것
- 관계형 데이터베이스에서는 어려움
- 쿼리가 노드 간에 함께 조인 할 필요가 없어 노드 간에 보다 간단하게 배포 가능
- 수직확장
- 단일 서버 또는 클러스터의 처리 능력을 높이는 것
- 최대 처리 능력 및 처리량 측면에서 제한
- 비용이 선형적으로 확장되지 않음
- 고성능 하드웨어의 경우 비용 증가
- 장점
- 데이터베이스를 실행하는 시스템의 하드웨어 사양 외에는 데이터베이스 인프라에 대한 변경 사항이 없다는 것
- 대규모 저장 및 처리가 필요하지 않은 경우 추천
- 단점
- 더 많은 스토리지와 처리 능력을 갖춘 서버가 훨씬 더 비쌀 수 있음
- 수직 확장에 하드웨어 간 마이그레이션이 필요한 경우 다운타임 또는 서비스 중단이 발생 가능
데이터 복제
- 데이터베이스의 복사본을 만드는것
- 노드 중 하나가 다운되어도 클러스터의 다른 노드가 요청에 응답 가능하여 클라이언트의 요청을 처리할 수 있음
- 스토리지 용량이나 쓰기 요청 처리 능력을 향상시키지는 않음
파티셔닝(sharding)
- 데이터를 여러 데이터베이스 인스턴스 또는 샤드로 분할하여 성능을 개선하고 단일 데이터베이스에 대한 대량 데이터의 영향을 줄이는 데이터베이스의 수평적 확장을 위한 기술
- 스토리지 용량 확장 가능
- 각 노드는 저장된 데이터 처리만 담당
- 읽기 및 쓰기에 대한 처리 용량 증가
CAP Theorem
- 분산 컴퓨터 시스템이 아래 3가지를 모두 만족 시킬수 없다는 이론
- Consistency(일관성)
- 모든 노드가 같은 순간에 데이터를 볼 수 있다.
- Availability(가용성)
- 모든 요청이 성공 또는 실패 결과를 반환 할 수 있다.
- Partition tolerance(분할내성)
- 메시지 전달이 실패하거나, 시스템 일부가 망가져도 시스템이 계속 동작할 수 있다.
데이터베이스 indexes
- index
- 추가적인 쓰기 작업과 저장공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조
- 장점
- 테이블 조회 속도와 그에 따른 성능 향상
- 전반적인 시스템의 부하 감소
- 단점
- 인덱스 관리를 위해 DB의 약 10%에 해당하는 공간 필요
- 인덱스 관리를 위한 추가 작업 필요
- 인덱스 잘못 사용시 성능 저하
- 인덱스를 사용하면 좋은 경우
- 규모가 큰 테이블
- Insert, Update, Delete가 자주 발생하지 않는 컬럼
- JOIN, Where, Order by에 자주 사용되는 컬럼
- 데이터 중복도가 낮은 컬럼
참고자료
'CS > Backend-RoadMap' 카테고리의 다른 글
Backend-RoadMap_Web Security Knowlege (0) | 2023.04.11 |
---|---|
Backend-RoadMap_APIs (0) | 2023.03.27 |
Backend-RoadMap_About Database (0) | 2023.03.23 |
Backend_Roadmap_OS(+파일시스템) (0) | 2023.03.22 |
Backend-RoadMap_인터넷 개념 정리 (0) | 2023.03.21 |