inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

(꼬리 질문) 동료가 Bool 타입의 인덱스를 건다고 하면, 어떤 의견을 낼 것 같나요? ⭐️⭐️

Boolean 컬럼 인덱스와 Cardinality에 따른 실행 계획에 대하여

1

소준영

작성한 질문수 1

0

강의를 듣다가 궁금한 부분이 있어 질문드립니다!

Secondary Index를 사용하면 Primary(Clustering) Index Lookup 과정에서 랜덤 I/O가 발생할 수 있다고 이해하고 있습니다

다만 이는 Cardinality가 낮은 Boolean 컬럼에만 국한된 문제라기보다는, Secondary Index의 정렬 순서와 PK 순서가 일치하지 않는 경우 일반적으로 발생할 수 있는 문제라고 생각합니다

또한 MySQL에서는 MRR을 통해 조회 대상 PK를 정렬한 뒤 접근함으로써 랜덤 I/O를 줄일 수도 있는 것으로 알고 있습니다

강의에서는 Boolean 컬럼의 경우 특정 값이 전체 데이터의 상당 부분을 차지할 가능성이 높기 때문에, MRR을 통한 정렬 및 테이블 Lookup보다 Full Table Scan이 더 효율적일 수 있다는 취지로 설명해주신 것으로 이해했습니다

그렇다면 인덱스의 효율은 Cardinality 자체만으로 결정된다기보다, 실제 값의 분포와 선택도, 예상 조회 행 수, Covering Index 여부, MRR 적용 여부 등의 요인을 함께 고려해 판단한다고 이해해도 될까요?

DBMS/RDBMS innodb mysql

답변 0

[실습] WHERE문이 사용된 SQL문 튜닝하기 - 2

0

28

2

JWT토큰 발급 시, subject 값을 다양하게 넣어서 여러 개의 토큰을 만드는 이유

0

21

2

[실습] 인덱스 직접 설정해보기/성능 측정해보기

0

32

2

docker 마지막 실습(app(flask) + mysql) 연동 과정

1

47

2

테스트 코드 작성 시 DTO 새로 작성하는 이유가 궁금합니다.

0

36

1

물리적 모델링 - 실습 (역정규화) 질문

0

44

2

「김영한의 실전 데이터베이스 - 성능 최적화」

0

34

1

aws 관련 질문드립니다.

1

53

3

어플리케이션 실행 후 에러에 관하여 질문 드립니다.

2

57

2

운영환경에 적용해볼 수 없을때...고민입니다 ㅠㅠ

0

50

1

추가 연습 문제 링크 주세요

0

31

0

용어 사전

0

52

2

개념적 모델링 - 실습

0

34

1

유튜브 시연 영상 추가 기능 강의 업로드 계획

0

25

2

DB 설계와 JPA 관련 질문입니다

0

32

1

관리자 페이지 질문

0

30

2

드랍 테이블로 지운 ordes에 대해서 질문

0

32

1

문제 풀이 1번 질문

0

37

1

twitterdb 연결이 안돼요

1

42

2

Kafka Cluster 구성도 질문

0

28

1

아주 작은 정오표 전달드립니다.

0

72

2

mysql워크벤치를 실행할때마다 오류가 뜹니다. 해결 방법좀 가르켜주세요.

0

67

1

실제로 작은 기업에서 기획 롤

1

51

1

이제 인프런에서 강의 더 안산다. 후져....

0

66

3