Surrogate Key를 사용했을 때 빠르게 찾을 수 있는 이유 설명부탁드립니다.
알고리즘에 의해서 ID가 Integer일 때 주민번호나 CIA(?)와 같이 스트링보다 빠르게 찾을 수 있는 이유를 알고싶습니다.
답변 1
0
안녕하세요. 몇가지 이유가 있는데 차근차근 설명해보도록 하겠습니다.
첫번째로 Integer는 문자열에 비해서 값을 비교하는데 빠릅니다. Integer 같은 경우엔 DB 내에서 유일한 값을 표현하는데 4바이트, 8바이트 크기를 가지며 반면에 String 으로 ID를 갖게 되면 유일한 속성을 표현하기 위해 상대적으로 많은 크기를 필요로 합니다. 그리고 하드웨어 관점에서도 정수 비교가 스트링 비교보다 훨씬 빠릅니다.
두번째가 강의에서 사실 제가 강조하고 싶었던 내용인데, 성능 최적화를 위해서 관계형 데이터베이스에서 인덱스를 사용합니다. 보통 인덱스는 B+트리 구조를 갖는데요. 이 자료구조의 특징이 Sorted Tree라서 적은 탐색으로 원하는 값을 찾을 수 있습니다.
두번째 이유는 developerDoor님께서 B+ 트리 자료구조를 알고 계신지 아닌지 몰라서, 여기서 더 자세히 설명을 드려야 하는지 궁금한데 🤔 댓글로 설명이 더 필요하신지 알려주시면 설명을 이어가도록 하겠습니다
실습 데이터(PostgreSQL 백업 파일) 관련하여 문의드립니다. (Hive 환경 실습)
0
26
2
sakila 실전 17번 문제
0
22
1
수강 완료한 강의 수료증 어떻게 받나요?
0
29
1
복합인덱스 설계 질문
0
55
1
마스터패스...
0
41
1
SubStack 신청 완료했습니다!
0
23
2
노드
0
35
1
아무도 모르게 책 내시면 모르실 줄 알고!!
1
54
2
리뷰
0
47
2
upload_file_id가 1,3,4 순서인 건에 대해
0
43
1
샘플데이터 요청
1
39
2
모터와 모터 드리이브 쪽 영상이 이상해요
0
39
2
p.created_at vs u.name 인덱스 문의
0
48
2
이진 트리 노드
0
51
1
조인의 특징
0
47
2
비관적 락과 낙관적 락에서 임계 영역 질문 있습니다.
0
46
2
통계정보 갱신 질문
0
69
2
PK 관련하여 궁금한 점이 있어서 질문 드립니다.
0
78
2
탐색을 한번 더 하지 않게 하는 방식 중 어댑티브 해시 방식도 맞는지 궁금 합니다.
0
75
2
컬럼 크기가 대용량인 경우 DB 버퍼 풀에 전부 올라오는지 궁금합니다
0
72
2
실습데이터 ORDERS 생성 시간 질문요...
0
104
3
MySQL 서버구조 쿼리파서 질문 있습니다 !
0
73
1
상태 기반 데이터관리에서 특정 시점에 대한 정보는 어떻게 관리할 수 있나요?
0
46
1
쿠버네티스 설정파일 구동관련 질문이 있습니다.
1
312
2





