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

developerDoor님의 프로필 이미지
developerDoor

작성한 질문수

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

데이터베이스 Key에 관해서

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

해결된 질문

작성

·

484

3

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

답변 1

0

애프터캠프님의 프로필 이미지
애프터캠프
지식공유자

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

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

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

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

 

 

developerDoor님의 프로필 이미지
developerDoor

작성한 질문수

질문하기