브랜치 노드와 리프노드의 개념이 해깔립니다.
첫번째 인덱스 강의에 브랜치 노드 부분을 생략하고 설명해주셨는데
이 브랜치 노드가 부분을 알고 싶습니다.
1부터 100까지 int타입의 값이 있는 property_id라는 column에 인덱스를 만들고
where property_id=30을 하면
30은 브랜치 노드에 있을 것 같은데
설명해주신 부분에서는 데이터 포인터는 리프 노드에만 있다고 하셔서 이부분이 머리속에서 해깔립니다.
답변 1
0
안녕하세요 ㅎㅎ
30은 브랜치노드가 아니라 리프노드에 있습니다.
브랜치 노드와 리프 노드의 개념을 조금 더 구체적으로 설명드릴게요 ㅎㅎ
데이터베이스의 인덱스 구조에서 브랜치 노드는 인덱스 트리의 구조를 이루는 중간 노드로, 실제 데이터가 저장된 위치를 직접적으로 참조하지 않고 다음 노드나 리프 노드로 가는 경로를 나타내는 역할을 합니다. 반면, 리프 노드는 실제 데이터를 가리키는 포인터를 가지고 있어 해당 데이터가 저장된 위치로 바로 접근할 수 있습니다.
예를 들어, 1부터 100까지 property_id 값을 가지는 칼럼에 대해 인덱스를 생성하고, WHERE property_id = 30이라는 조건을 검색한다고 가정할 때:
브랜치노드를 거치면서 리프노드로 가게 됩니다.
이 때 브랜치노드는 필요한 데이터가 있는 리프노드까지 갈 때 한번에 리프노드로 가면 비용이 많이 드는데 브랜치노드를 통해 적절히 리프노드가 있을만한 범위로 가게 되여 이 때의 비용을 줄여주게 되는 역할을 담당하게 됩니다.
그리고 리프 노드에 도달하면, property_id = 30이라는 특정 값을 가리키는 데이터 포인터를 찾게 됩니다. 이 데이터 포인터가 실제 데이터의 위치를 나타내며, 이를 통해 해당 데이터를 가져올 수 있습니다.
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.
REST API (Self-descriptive messages)
0
28
1
시스템 엔지니어 관련 질문입니다.
0
55
2
오버라이딩 관련하여 질문드립니다.
0
64
2
교착상태의 4가지 필요조건이 필요충분조건이 아닌 이유
0
94
1
렌더 트리, 렌더 레이어와 그래픽 레이어
0
58
2
로컬스토리지, 세션스토리지, 쿠키의 공통점
0
68
1
IPv4가 IPv6보다 빠른 경우
0
103
2
UDP가 전송계층의 역할을 못하는 건 아닌지
0
59
1
Path MTU 발견하였음에도 패킷 분할이 필요한 이유?
0
66
2
교재의 LFU 알고리즘에서 6번이 왜 히트인가요?
0
64
2
페이지 교체 알고리즘? 프레임 교체 알고리즘?
0
83
2
Static 키워드가 메모리에 올라가는 시점
0
78
2
헤더 압축부분 질문드립니다
0
74
2
공유 캐시 관련 질문 드립니다.
0
56
2
컨텍스트는 context와 contextual information으로 나눠진다는게 무슨뜻인가요?
0
201
1
회선과 대역폭의 관계
0
63
2
44강 질문
0
96
2
버스 토폴로지 질문 있씁니다
0
56
1
자바스크립트, xml 문법 관련
0
67
2
전략패턴과 의존성주입 질문
0
69
2
Model이 비즈니스 로직을 담당하나요?
0
108
2
CS 공부 하는 법
0
181
2
큰돌님 블로그에 개념정리해서 올려도될까요!
0
137
2
FIN 세그먼트 질문
0
72
2





