inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

클론코딩에서 알려주지 않는 것들 (시스템 이론과 DB) 1편

데이터베이스 Key에 관해서

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

해결된 질문

556

developerDoor

작성한 질문수 4

3

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

dbms/rdbms systems

답변 1

0

애프터캠프

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

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

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

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

 

 

드랍 테이블로 지운 ordes에 대해서 질문

0

20

1

문제 풀이 1번 질문

0

26

1

아주 작은 정오표 전달드립니다.

0

52

2

mysql워크벤치를 실행할때마다 오류가 뜹니다. 해결 방법좀 가르켜주세요.

0

44

1

온톨로지 구축

0

26

1

실제로 작은 기업에서 기획 롤

1

26

1

order_product 까마귀발

0

44

2

공통 코드 , 계층 구조 질문

1

37

1

[DB설계] 탈퇴 유저의 구독 정보 유지 및 이메일 마스킹 관련 질문입니다.

0

53

1

자연키 vs 대리키 실무질문

0

28

1

페이징 처리에서 offset/limit에 대한 질문

1

56

1

1:N 관계에서 중간테이블 (연관엔티티)

0

57

2

dvdrental 서버에 접속할 수 없어요

0

41

1

공통코드 관련한 질문 드립니다.

0

73

1

usecase 사용 기준

1

68

2

실습용 테이블, 데이터 생성 파일 있을까요?

2

60

2

MySql

1

56

2

팬텀리드 해결 예시 질문

1

56

1

최신버젼 다운로드

0

51

2

차단 등 검증 로직의 위치

0

66

2

일대일 fk 위치

0

43

1

수업에서 사용하는 툴 질문드려요

0

58

2

다음 강의는 언제쯤 나올까요?

0

98

2

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

1

294

2