inflearn logo
강의

講義

知識共有

クローンコーディングで教えてくれないもの(システム理論とDB)

データベースキーについて

Surrogate Key를 사용했을 때 빠르게 찾을 수 있는 이유 설명부탁드립니다.

解決済みの質問

580

developerDoor

投稿した質問数 4

3

알고리즘에 의해서 ID가 Integer일 때 주민번호나 CIA(?)와 같이 스트링보다 빠르게 찾을 수 있는 이유를 알고싶습니다.

dbms/rdbms systems

回答 1

0

aftercamp

안녕하세요. 몇가지 이유가 있는데 차근차근 설명해보도록 하겠습니다.

첫번째로 Integer는 문자열에 비해서 값을 비교하는데 빠릅니다. Integer 같은 경우엔 DB 내에서 유일한 값을 표현하는데 4바이트, 8바이트 크기를 가지며 반면에 String 으로 ID를 갖게 되면 유일한 속성을 표현하기 위해 상대적으로 많은 크기를 필요로 합니다. 그리고 하드웨어 관점에서도 정수 비교가 스트링 비교보다 훨씬 빠릅니다.

두번째가 강의에서 사실 제가 강조하고 싶었던 내용인데, 성능 최적화를 위해서 관계형 데이터베이스에서 인덱스를 사용합니다. 보통 인덱스는 B+트리 구조를 갖는데요. 이 자료구조의 특징이 Sorted Tree라서 적은 탐색으로 원하는 값을 찾을 수 있습니다.

두번째 이유는 developerDoor님께서 B+ 트리 자료구조를 알고 계신지 아닌지 몰라서, 여기서 더 자세히 설명을 드려야 하는지 궁금한데 🤔 댓글로 설명이 더 필요하신지 알려주시면 설명을 이어가도록 하겠습니다

 

 

PK를 AUTO_INCREMENT UUID를 UNIQUE로 하는것에 대해

0

11

1

pk를 auto increment로 하는것에 대해서

0

16

1

getOrCreate / Unique? 멱등 처리 질문

1

59

2

경쟁상태

0

49

1

stmt

0

41

1

실행 통계2 explain analyze 조인 쿼리

0

46

1

3강 인덱스 구조 강의 자료 문의

1

59

1

조회 메서드에서 @Transactional(readOnly=true) 질문

1

41

1

68강 문제 풀이

0

43

1

현대 쿼리 복잡성에 관한 질문

0

90

3

key_length 가 사용되는곳

0

45

1

해당 결제 부분을 포폴에서 테스트 api를 적용에 대한 궁금증

1

46

1

공통 코드 VS Enum 클래스

1

48

1

안녕하세요.

0

52

1

Properties 설정이 추가되었는데

0

38

1

강의 DB데이터 질문

0

61

1

극단적으로 from-to가 12일 이고, valid_to가 13일이면?

0

44

1

아니 이거 갑자기 데이터베이스가 사라졌어요

0

70

1

기타 영역 중 언두로그

0

88

1

ReviewPolicyValidator와 ReviewManger내의 if문

1

65

2

실전튜닝 4 질문 - group by 순서와 index 순서

0

67

1

가중이동평균매출 lag함수 활용

0

82

2

'Canvas 설정과 배경 설정’ 부분에 대해 질문드립니다.

1

71

1

쿠버네티스 설정파일 구동관련 질문이 있습니다.

1

323

2