PK 관련하여 궁금한 점이 있어서 질문 드립니다.
69
6 câu hỏi đã được viết
안녕하세요!
PK 설계와 관련하여 궁금한 점이 있어 질문드립니다.
강의에서는 AUTO_INCREMENT를 사용하면 PK가 순차적으로 증가하기 때문에 랜덤한 위치에 데이터가 삽입되는 것을 줄이고, 페이지 분할을 최소화할 수 있어 사용을 권장한다고 이해했습니다.
그런데 한편으로는 MSA 환경에서 PK로 UUID를 많이 사용한다는 이야기를 들었습니다. UUID를 사용하면 각 서비스에서 ID를 독립적으로 생성할 수 있다는 장점이 있다고 하는데, 서비스별로 데이터베이스와 테이블이 분리되어 있다면 각 테이블의 PK는 해당 테이블 내에서만 유일하면 되기 때문에 AUTO_INCREMENT를 사용해도 문제가 없지 않을까 생각했습니다.
그래서 다음 내용이 궁금합니다.
실제 MSA 환경에서는 일반적으로 PK로 UUID를 많이 사용하는지
UUID 사용으로 인한 인덱스 크기 증가와 페이지 분할 등의 단점보다 UUID의 장점이 더 커지는 판단 기준은 무엇인지
찾아보니까 시간 순서 특성이 있는 UUID v7 라는 것도 있는데 이를 사용하는 건지
이런 궁금증이 생기는데 시원하게 해결이 되지 않아서 질문으로 남깁니다.
항상 좋은 강의 올려주셔서 감사합니다.
다음 강의에 해당 내용에 대한 설명이 다 있는 것을 확인하였습니다.
감사합니다!
Câu trả lời 2
0
안녕하세요, 인프런 AI 인턴입니다. Gomgomi님 질문에 대한 답변을 드리겠습니다.
MSA 환경에서 PK로 UUID 사용 여부:
- MSA(Microservices Architecture)에서 각 서비스가 독립적으로 운영되기 때문에, 중앙 관리 없이도 유일성을 보장할 수 있는 UUID가 많이 사용되곤 합니다. 각 데이터베이스 인스턴스나 테이블이 서로 다른 환경에서 운영된다면, UUID의 독립적 생성과 글로벌 유일성은 중요한 이점이 됩니다.
- MSA(Microservices Architecture)에서 각 서비스가 독립적으로 운영되기 때문에, 중앙 관리 없이도 유일성을 보장할 수 있는 UUID가 많이 사용되곤 합니다. 각 데이터베이스 인스턴스나 테이블이 서로 다른 환경에서 운영된다면, UUID의 독립적 생성과 글로벌 유일성은 중요한 이점이 됩니다.
UUID의 장점과 단점 비교:
- UUID의 주요 장점은 분산 시스템에서 충돌 없이 고유 식별자를 생성할 수 있는 점입니다. 그러나 이는 인덱스 크기 증가와 페이지 분할을 유발할 수 있어 성능에 영향을 미칠 수 있습니다. 이러한 단점보다도 UUID의 장점이 더 가치 있는 경우는, 데이터가 여러 서비스나 노드에서 동시에 생성되는 경우입니다. 이러한 환경에서는 접근의 일관성과 충돌 방지가 우선시됩니다.
- UUID의 주요 장점은 분산 시스템에서 충돌 없이 고유 식별자를 생성할 수 있는 점입니다. 그러나 이는 인덱스 크기 증가와 페이지 분할을 유발할 수 있어 성능에 영향을 미칠 수 있습니다. 이러한 단점보다도 UUID의 장점이 더 가치 있는 경우는, 데이터가 여러 서비스나 노드에서 동시에 생성되는 경우입니다. 이러한 환경에서는 접근의 일관성과 충돌 방지가 우선시됩니다.
시간 순서 특성이 있는 UUID v7:
- UUID v7은 시간 순서를 보장하면서도 중복되지 않는 특성을 가져, 인덱싱과 정렬 문제를 완화할 수 있습니다. 만약 시간 순서에 따른 유일성과 정렬 기반 접근이 필요하다면, UUID v7을 고려할 수 있습니다.
- UUID v7은 시간 순서를 보장하면서도 중복되지 않는 특성을 가져, 인덱싱과 정렬 문제를 완화할 수 있습니다. 만약 시간 순서에 따른 유일성과 정렬 기반 접근이 필요하다면, UUID v7을 고려할 수 있습니다.
질문 내용은 데이터베이스의 설계와 최적화 방향에 따라 다르게 해석될 수 있습니다. 이 게시글에서 UUID에 대해 유사한 논의가 있으니 참고해 보시기 바랍니다.
PK 타입에 관한 문의에도 관련된 답변이 있으니 함께 보시면 도움이 될 것 같습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
복합인덱스 설계 질문
0
3
0
app logs 데이터로 쿼리 연습
0
6
1
ArticleReadService 관련 질문
0
12
1
마스터패스...
0
14
1
kafka 이벤트 발행 실패 시 at-least-once를 보장하는 방법이 궁금합니다.
1
32
1
[과제] 연습문제 쿼리 작성했습니다!
0
10
1
SubStack 신청 완료했습니다!
0
12
2
domain에 @Entity 와 Repository를 함께 둔 이유가 궁금합니다
1
27
1
실습소 페이지
0
20
2
노드
0
19
1
57번
0
29
1
안녕하세요. 요약집 어디서 볼 수 있을까요?
0
27
1
아무도 모르게 책 내시면 모르실 줄 알고!!
1
42
2
Jib 이미지 빌드에서 docker credential 관련으로 이슈가 있다면
1
58
1
스크립트에 대해 질문 있습니다.
1
51
1
64비트 다운로드 링크
0
26
2
같은 사용자가 연속된 중복 호출할 경우 어떻게 되는지 궁금합니다!
2
55
1
이진 트리 노드
0
46
1
통계정보 갱신 질문
0
62
2
탐색을 한번 더 하지 않게 하는 방식 중 어댑티브 해시 방식도 맞는지 궁금 합니다.
0
71
2
컬럼 크기가 대용량인 경우 DB 버퍼 풀에 전부 올라오는지 궁금합니다
0
63
2
실습데이터 ORDERS 생성 시간 질문요...
0
94
3
MySQL 서버구조 쿼리파서 질문 있습니다 !
0
67
1
Postgresql 아키텍처 업데이트
1
85
2

