인프런 커뮤니티 질문&답변

박호정님의 프로필 이미지

작성한 질문수

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

11-로그인 프로세스 이해

로그인 프로세스 설명 중 질문

해결된 질문

작성

·

207

1

 해당 장을 설명해주실 때 철수가 1050번째, 영희가 2050번째라고 가정했을때, 수직 파티셔닝 된 데이터베이스 중 어디에 있는지는 미리 알 수 있는 방법이 있을까요?

답변 1

0

노원두님의 프로필 이미지
노원두
지식공유자

안녕하세요! 호정님!

먼저, 질문하신 부분이 수직파티셔닝이 아닌 수평파티셔닝에 해당하는 것 같아서 다시 한 번 확인을 부탁드립니다!

수평파티셔닝(수평파티셔닝된 테이블을 서로다른 DB로 나누는 경우: 샤딩)된 여러개의 테이블을 찾는 방법으로 여러가지 방법이 있지만,

이해하기 쉽도록 핵심 매커니즘 위주로 설명을 드리자면 해시라는 기술을 기반으로하여 응용될 수 있어요!

 

해시란 다지다, 뭉그러뜨리다, 새로조합하다 등의 뜻으로 원본을 파괴하여 다른것으로 변형하는 의미를 가지고 있어요!

 

예를들어 볼까요?

데이터베이스가 10개 있다고 가정해 봅시다!(0번, 1번, ..., 9번)

이 때, 회원번호를 10으로 나눈 나머지(회원번호 % 10)를 해시값이라 칭하면 127번 유저는 해시값7(127 % 10)을 가지게 되겠죠?!

따라서, 7번 데이터베이스 저장하면 될 것 같네요!

이는 아주 단순한 예제에 불과하며, 숫자 뿐만 아닌 문자도 해시가 가능합니다!

이러한 원리를 기반으로 데이터베이스 샤딩을 공부하시면 많은 도움이 될 것 같네요!^^

박호정님의 프로필 이미지
박호정
질문자

아 수평파티셔닝에 대한 질문이었습니다~! 샤딩한 경우 해시 등의 기법으로 찾아내는 군요! 설명 감사합니다