inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

백엔드 개발자 성능 개선 초석 다지기

면접대비하기

MySQL 인덱스 관련해서

231

최도현

작성한 질문수 3

0

안녕하세요 incu님, 강의 잘 듣고있습니다.

인덱스 면접대비하기 부분에서 2가지 질문이 있습니다.

첫번째, MySQL 인덱스의 자료구조는 b-Tree라고 하셨는데, b+Tree 아닌가요? b+Tree의 개념을 포함해서 쓰신건지 궁금합니다.

 

두번째, 인덱스를 생성하고 그 인덱스를 WHERE 조건절에 사용했음에도 인덱스를 타지 않는 경우 중에 not eq 조건도 있는 것으로 알고있습니다. 이 경우에는 Table Full Scan하는 것이 맞는거죠? 아니면 not eq 조건에서 인덱스를 타지 않는데, 성능을 개선할 수 있는 방안이 어떤 것이 있는지 궁금합니다.

java mysql spring-boot cache index

답변 1

0

인프런 AI 인턴

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

incu님, MySQL 인덱스와 관련된 두 가지 질문에 대해 답변 드리겠습니다.

첫 번째 질문에 대하여, 일반적으로 MySQL에서 사용하는 인덱스의 자료구조는 B+Tree입니다. B-TreeB+Tree는 다르며, B+Tree는 모든 데이터가 리프 노드에 있고, 브랜치 노드에는 인덱스 정보만 저장하는 구조로 되어 있어 MySQL에서는 B+Tree 인덱스를 주로 사용합니다. 강의에서 언급한 b-Tree가 실제로는 B+Tree를 의미하는 것인지 강의 내용을 확인해볼 필요가 있습니다.

두 번째 질문에 대하여, not equal 조건이 쿼리에 있을 경우 인덱스를 통한 검색보다는 전체 테이블 스캔을 하게 되는 경우가 많습니다. 인덱스는 등값(Equality) 조건에 최적화되어 있어서 not equal 조건에서는 효율적이지 않기 때문입니다. 하지만 성능을 개선하기 위해 비트맵 인덱스를 사용하거나, not equal 조건을 다른 쿼리 형태로 변경하여 사용할 수도 있으나 이는 DBMS의 종류와 데이터의 특성, 쿼리의 복잡성에 따라 달라질 수 있습니다. 실제로 MySQL에서는 비트맵 인덱스를 지원하지 않으므로, not equal 조건에 대한 성능 개선을 위해서는 쿼리를 최적화하거나 인덱스를 조정하는 등 다양한 시도를 할 수 있습니다.

incu님의 강의 학습에 도움이 되었기를 바랍니다. 추가적인 질문이나 도움이 필요하시면 언제든지 문의해 주세요.

비동기 스레드풀 분리 이유와 Virtual Thread 전환 시 고려사항

0

35

1

script Validate가 안됩니다.

0

58

1

thread pool

0

49

1

ngrinder 설치관련

0

132

1

캐싱 데이터가 안보입니다.

0

138

2

ExecutorService와 CompletableFuture의 차이점과 역할

0

265

2

섹션4: Ngrinder를 통한 성능 개선 확인 에서 사용하는 예제 코드

0

213

2

현업에서의 부하테스트 및 Ngrinder 설치

0

349

2

인덱스 활용 질문

0

334

2

프로젝트 적용하는데 어려움이 있어 질문드립니다.

0

308

1

nGrinder validate가 안됩니다.

1

740

2

EhCacheManagerFactoryBean

0

408

2

인텔리제이 EditConfiguration 옵션 추가하는 방법 [ 공유O 질문X ]

2

512

2

프로젝트 공유

1

440

2

scouter client

0

388

2

스카우터 설치

0

494

2

생각보다 부하 테스트가 CPU를 많이 타는거 같은데 정상이겠죠?

0

363

1

로컬에서 성능 테스트하는 것이 어떨 때 유의미한가요?

0

960

1

nginder script작성 후 실행 후 Connection refused에러

0

752

2

scouter C드라이브 말고 다른 곳에서 실행 시 NoSuchFile 오류

0

416

2

java17환경에서 scouter 실행법 문의

1

1036

2

첫번째 회사에서 서비스 회사로 이직하실때 준비

0

382

1

ngrinder-agent 실행 문제(Unmapped relationship: 7)

0

375

1

ngrinder쪽에 스크립트 클릭시 오류

0

786

3