MySql
MySql 기준으로 설명을 하신다고 해주셨는데
MySql은 B+Tree가 아닌가요??
Answer 2
1
안녕하세요, Cola님!
좋은 질문이에요. 정확히는 MySQL(InnoDB)이 사용하는 인덱스 구조는 B+Tree가 맞습니다.
다만 강의에서 B-Tree를 다룬 건 면접 빈출 패턴을 고려한 선택이에요. 면접에서는 보통 "인덱스 자료구조를 설명해주세요" 또는 "B-Tree를 설명해주세요"라는 식의 질문이 훨씬 자주 나오고, B+Tree는 그 위에 얹어지는 변형 구조라 B-Tree를 먼저 정확히 이해하시면 B+Tree는 자연스럽게 따라옵니다.
B+Tree는 B-Tree에서 다음 두 가지가 추가/변경된 형태로 보시면 됩니다.
데이터는 leaf node에만 저장 (internal node는 key만 가짐)
Leaf node끼리 연결 리스트로 이어져 범위 검색에 유리
균형 트리 특성, 분할/병합 동작, 탐색 시간 복잡도 같은 핵심 메커니즘은 B-Tree와 동일합니다. 그래서 면접에서 "MySQL의 인덱스는 어떻게 동작하나요?" 같은 질문이 들어오면, B-Tree 설명을 베이스로 깔고 → "InnoDB는 이 위에서 B+Tree로 변형해 leaf node에만 데이터를 저장하고, leaf끼리 연결 리스트로 묶어 범위 검색을 빠르게 만들었다" 정도로 풀면 깊이 있는 답변이 됩니다.
즉 B-Tree는 베이스, B+Tree는 그 위의 특화 구조로 이해해주시면 강의에서 B-Tree를 다룬 의도가 자연스럽게 이어집니다.
0
안녕하세요, 인프런 AI 인턴입니다. Cola님!
MySQL의 경우, 데이터베이스 시스템 내에서 인덱스 구조로 B+Tree를 주로 사용합니다. B+Tree는 MySQL의 InnoDB 엔진에서 기본적인 인덱스 구조로, 데이터베이스에서 데이터를 효율적으로 검색하고 삽입, 삭제하는 데 최적화되어 있습니다.
B+Tree는 데이터가 정렬된 순서로 저장되고, 모든 리프 노드가 동일한 레벨에 있으며, 리프 노드가 쿼리에 필요한 실제 데이터를 가지고 있어, 범위 쿼리에 특히 효과적입니다. 이러한 점에서 B+Tree는 MySQL과 같은 데이터베이스 시스템에서 자주 사용됩니다.
질문하신 내용에 대한 관련 정보를 찾지는 못했지만, MySQL 데이터베이스 인덱스에 대해 더 알고 싶으시다면 데이터베이스 인덱스의 기본 개념과 사용 방법 과 같은 기존 질문을 참고하실 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
76강 2분33초 내용 오류
0
10
0
인덱스 강의 혹은 해당 강의 전 듣어야 하는 사전강의 문의
0
15
2
ordered_at, paid_at 과 같이
0
19
1
기본편 오타 제보 드립니다.
0
28
1
Substack 신청 문의
0
30
2
개념과 격벽에 대한 이해를 팀과 공유하고 합의하는 방법
1
58
2
Substack 1년 제공 문의
0
44
2
접근 가능한 카트 목록을 조회하는 API는 없는걸까요?
1
59
2
[실습] WHERE문이 사용된 SQL문 튜닝하기 - 2
0
51
2
[실습] 인덱스 직접 설정해보기/성능 측정해보기
0
53
2
관계도출부분 질문입니다.
0
36
1
물리적 모델링 - 실습 (역정규화) 질문
0
48
2
「김영한의 실전 데이터베이스 - 성능 최적화」
0
56
2
파이프라이닝
1
58
1
진리표를 회로로 변환할 때 F가 0인 경우 don't care
0
59
2
Monolith 아키텍쳐 질문
0
50
1
용어 사전
0
61
2
개념적 모델링 - 실습
0
36
1
섹션8 강의자료가 안열려요
0
37
2
DB 설계와 JPA 관련 질문입니다
0
38
1
드랍 테이블로 지운 ordes에 대해서 질문
0
41
1
문제 풀이 1번 질문
0
40
1
아주 작은 정오표 전달드립니다.
0
78
2
팬텀리드 해결 예시 질문
1
78
1

