샤딩에 대해서 궁금점있습니다.
저의 짧은 지식으로는 샤딩은 수평분할에 기반한 방식이라 수직은 존재하지 않는 것으로 알고 있습니다. 혹시, 이부분에 대해서 설명을 해주실 수 있으신가요?
Answer 2
0
hahahl님, 안녕하세요!
일반적으로 샤딩이라 함은 수평 분할에 대한 용어로 사용되지만, 개념적으로 수직 분할이란게 없는건 아닙니다. (공식적인 용어에 대해서 묻는 것이라면, it 분야가 용어와 그에 대한 해석이 다양할 수 있고 비공식적인 용어도 흔히 사용되다보니, 그 부분에 대해선 저도 모르겠습니다.)
수평(테이블로 치면 레코드 단위)으로 분산하는게 아닌, 수직(테이블로 치면 컬럼 단위)으로 분산하면 그것이 수직 분할인 것이고요.
사실 1:1 테이블 관계로 정규화한다라는 개념과 딱히 다를 것 없다고 생각되기도 하네요. (물론 엄밀히 따지면 다르지만요)
특별히 설명 드릴만한게 있는 부분도 아니고 용어에 대해서 깊게 짚고 넘어가야할 부분은 아니라, 크게 신경 안쓰시고 넘어가셔도 괜찮을 것 같네요!
0
안녕하세요, 인프런 AI 인턴입니다. hahahl님.
샤딩은 데이터베이스 성능을 향상시키기 위해 자주 사용되는 기법 중 하나로, 일반적으로 수평 분할(Horizontal Partitioning)을 통해 데이터를 여러 개의 작은 데이터베이스로 나누는 것을 의미합니다. 이를 통해 한 번에 처리해야 하는 데이터의 양을 줄이고, 여러 데이터베이스 서버가 병렬로 작업을 수행할 수 있도록 하여 성능을 향상시킵니다.
수평 분할 (Horizontal Sharding)
- 개념: 가장 널리 사용되는 방식으로, 동일한 테이블 구조를 가진 여러 데이터베이스에 서로 다른 행(Row)을 분산하여 저장하는 것입니다.
- 장점: 데이터를 분산함으로써 읽기 및 쓰기 부하를 여러 서버에 분산할 수 있어 확장성을 극대화할 수 있습니다.
수직 분할 (Vertical Partitioning)
- 개념: 테이블의 열(Column)을 기준으로 데이터를 분리하여 저장하는 방식입니다. 예를 들어, 사용자 정보가 담긴 테이블에서 ‘개인 정보’와 ‘부가 정보’를 각각 다른 데이터베이스에 저장하는 것이 수직 분할의 예입니다.
- 특징: 수직 분할은 데이터베이스의 특정 파트의 크기를 줄이거나, 민감한 데이터를 분리해 보안을 강화할 때 사용될 수 있습니다.
- 한계: 높은 확장성을 필요로 하는 경우보다는 특정 컬럼에 대한 액세스를 최적화할 때 효과적입니다.
샤딩과 관련된 많은 질문들이 있으며, 수평 분할과 수직 분할의 장단점을 다룬 게시물이 있습니다. 자세한 내용은 다음 링크를 참고하시면 좋을 것 같습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
consumer에서 에러가 발생할 경우 데이터 유실 문의
0
33
2
게시글 테스트 데이터 삽입
0
41
2
정렬, 필터, 검색 등의 조건이 붙을 경우 최적화할 수 있는 방법이 무엇이 있을까요?
0
91
2
좋아요 기능 정합성 보장 방법
0
87
2
좋아요 동시성처리 최적의 선택?
1
108
2
프론트엔드 msa 환경 api 주소 통합? 과 서버끼리 통신 방식에대해
0
82
2
안녕하세요 무한스크롤 강의듣다가 질문이 있습니다.
0
51
1
조회수 조회 로직 질문
1
59
2
비로그인 유저도 어뷰징 방지 정책
1
60
2
CommentServiceTest의 테스트 로직 질문
0
47
2
무한 스크롤 방식에서 페이지 번호 방식 쿼리의 문제점 의문
1
68
2
path 쿼리 관련 질문드립니다!
0
50
2
antigravity 에디터를 쓰신다면 종료해주세요
1
115
0
프로젝트 구조
0
79
2
article_like_count api test
0
65
2
이벤트 페이로드 객체의 생성 방식이 팩토리 메서드 패턴이 아닌 빌더 패턴인 이유가 궁금합니다!.
0
93
2
[33. 좋아요 수 구현] 에서 테스트 하는 화면 동시성 문제
0
81
2
findByPath에서 articleId로도 검색을 해야 할 것 같아요.
0
84
3
jpa ddl-auto none을 하는 이유와 join 방법
0
90
2
팩터리 메소드와 response 객체 사용 이유가 궁금합니다!
0
82
2
커서 기반 페이지네이션 과 무한 스크롤링
0
91
2
게시글 생성 로직에서 오류 발생시 redis 게시글 수 되돌리기
0
92
2
멀티 모듈이 아닌 MSA 환경에서 common
0
143
2
2Depth 강의 도중 궁금한 점 있어요!!
0
69
2

