inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

채널톡 면접관이 직접 알려주는 CS 면접 대비 - 데이터베이스 편

(꼬리 질문) 인덱스의 자료 구조로 Hash 테이블이 아니라 왜 주로 B-Tree를 사용하나요? ⭐️⭐️⭐️

MySql

해결된 질문

101

Cola

작성한 질문수 43

1

MySql 기준으로 설명을 하신다고 해주셨는데

MySql은 B+Tree가 아닌가요??

dbms/rdbms nosql computer-science

답변 2

1

JSCODE 제이온

안녕하세요, 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

Cola

그럼 강의 내용에 B-Tree라고 명시된 내용들은 B+Tree의 내용이 빠진 답변들이라고 이해하면 될까요?

1

JSCODE 제이온

넵~ B-Tree 기준으로 이해해주시면 감사하겠습니다.

0

Cola

감사합니다!

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. Cola님!

MySQL의 경우, 데이터베이스 시스템 내에서 인덱스 구조로 B+Tree를 주로 사용합니다. B+Tree는 MySQL의 InnoDB 엔진에서 기본적인 인덱스 구조로, 데이터베이스에서 데이터를 효율적으로 검색하고 삽입, 삭제하는 데 최적화되어 있습니다.

B+Tree는 데이터가 정렬된 순서로 저장되고, 모든 리프 노드가 동일한 레벨에 있으며, 리프 노드가 쿼리에 필요한 실제 데이터를 가지고 있어, 범위 쿼리에 특히 효과적입니다. 이러한 점에서 B+Tree는 MySQL과 같은 데이터베이스 시스템에서 자주 사용됩니다.

질문하신 내용에 대한 관련 정보를 찾지는 못했지만, MySQL 데이터베이스 인덱스에 대해 더 알고 싶으시다면 데이터베이스 인덱스의 기본 개념과 사용 방법 과 같은 기존 질문을 참고하실 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

안녕하세요.

0

20

1

Properties 설정이 추가되었는데

0

25

1

강의 DB데이터 질문

0

38

1

극단적으로 from-to가 12일 이고, valid_to가 13일이면?

0

36

1

선생님 질문있습니다!

0

49

2

아니 이거 갑자기 데이터베이스가 사라졌어요

0

51

1

기타 영역 중 언두로그

0

63

1

ReviewPolicyValidator와 ReviewManger내의 if문

1

51

2

실전튜닝 4 질문 - group by 순서와 index 순서

0

57

1

가중이동평균매출 lag함수 활용

0

68

2

'Canvas 설정과 배경 설정’ 부분에 대해 질문드립니다.

1

57

1

DB 쿼리 최적화 시 DB 처리와 애플리케이션 처리의 기준이 궁금합니다

0

56

1

디비를 조작하는데 사용하는 명령어가 ORM인가요?

0

52

2

실무에서의 인덱스 관리 방법이 궁금합니다

0

67

1

Group By 절에 작성하는 컬럼 문의드립니다.

0

94

3

ProductController 에서 타협하지 않는다면 어떤 형태가 되나요?

1

65

2

문제와 풀이2 1번문제

0

50

1

리프레시 토큰

1

50

1

실습 데이터(PostgreSQL 백업 파일) 관련하여 문의드립니다. (Hive 환경 실습)

0

83

1

sakila 실전 17번 문제

0

48

1

Request Failed 가 뜹니다.

0

78

2

수강 완료한 강의 수료증 어떻게 받나요?

0

55

1

비관적 락과 낙관적 락에서 임계 영역 질문 있습니다.

0

74

2

팬텀리드 해결 예시 질문

1

122

1