inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

데이터베이스 Key에 관해서

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

해결된 질문

550

developerDoor

작성한 질문수 4

3

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

dbms/rdbms systems

답변 1

0

애프터캠프

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

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

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

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

 

 

간단한 오타 제보입니다.

0

3

0

큰 범위 조회 시 EXPLAIN의 rows 값이 정확하지 않은 이유가 궁금합니다.

0

19

1

실제 FK제약조건을 설정하지 않는이유

0

19

1

Sequence 관련 질문

1

26

2

Image Only Query

1

24

2

라이브 운영중인 환경의 테이블에 인덱스 추가시 고려사항

0

29

2

수강기간 연장

0

25

1

다양한 관점의 코드 경험을 위해 개선하지 않은 코드

1

47

1

BCNF 질문

0

46

2

연관 엔티티 네이밍 규칙

0

39

1

6강 - 해시태그 모델의 샤딩 전략에 대하여, 분산 정도(데이터 편중)와 트랜잭션 성능의 trade off 상황 발생 시에 대한 고민

0

36

2

2022년 2회차 실기 4번

0

24

1

히스토리 관련 질문

0

55

2

최신 하드웨어에서 SQL Express 설치에러 해결법

0

56

1

ProductOption을 통한 FindProductOption에 관한 질문

1

42

2

진짜 강의 듣는거 너무 고문

0

108

1

진짜중복/가짜중복을 나누는데 있어서

0

34

2

상수에 관련해서 질문있습니다.

1

42

2

nosql -> sql 비교

0

33

1

histories() 응답에 PointHistory.id를 포함한 이유가 궁금합니다/

1

43

2

studio 3t 설치시 문의

0

36

1

뉴스 데이터 전처리 실습 파일 부재

0

53

3

SettlementTargetRepository Jquery 질문

1

44

2

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

1

282

2