partitioning& sharding& replication [Database]

SnowCat·2023년 8월 8일
0

CS - Database

목록 보기
8/10
post-thumbnail

Partitioning

  • 데이터베이스를 더 작은 데이터베이스로 나누는 것을 partitioning이라고 함
  • collum을 기준으로 테이블을 나누는 vertical partioning, row를 기준으로 파티션을 나누는 horizontal partitioning이 있음
    vertical partioning은 select를 할 때 성능향상에 도움이 되며, horizontal partitioning을 사용하면 인덱스에 처리되는 시간을 줄일 수 있음
    horizontal partitioning을 사용할 때는 partion key를 잘 설정하고, 데이터가 잘 분배될 수 있도록 해주는 것이 중요함

Sharding

  • 테이블을 horizontal partitioning처럼 나누고, 나눠진 파티션을 여러 DB 서버에 나누어 동작하는 방식
  • 요청을 하나의 서버로 감당할 수 없을 때 서버의 부하를 분산시키기 위해 사용
  • 이 때 partition key는 shard key, 각 파티션은 shard라고 부름

replication

  • 여러개의 DB서버에 원본 DB를 복제한 백업 서버를 도입한 방식
  • DB 서버의 문제가 발생했을 때도 계속해서 서버 운용을 하기 위해 사용하며, read 쿼리의 경우 백업 서버를 사용해도 되기 때문에 부하 분산에도 도움이 됨
  • 원본 데이터가 있는 서버는 master 또는 primary라 부르며, 백업 데이터가 있는 서버는 slave 또는 secondary라 부름

출처:
https://www.youtube.com/watch?v=P7LqaEO-nGU&list=PLcXyemr8ZeoREWGhhZi5FZs6cvymjIBVe&index=29

profile
냐아아아아아아아아앙

0개의 댓글

Powered by GraphCDN, the GraphQL CDN