inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실전! 데이터베이스 완전정복 [설계편]

선택도(Selectivity)

인덱스 설계 시 컬럼 선택 기준

해결된 질문

124

제로콜라 함 즐길까

작성한 질문수 7

0

안녕하세요. 강사님의 좋은 자료 덕분에 장고 강의에 이어 데이터베이스 설계 강의까지 함께하고 있는 수강생 입니다.

 

강의를 듣던 중, "22.선택도 / 3:51" 내용을 보고 의문점이 생겨 질문 남깁니다.

 

배경

라는 설명을 듣고, "중복이 적을수록 인덱스를 생성하면 더 효율적이겠구나" 라는 정보를 얻었습니다.

 

그 후, "어떤 컬럼을 선택해야 할까?" 장표에는 그중에서 선택성이 높은 컬럼 위주로 인덱스 생성

이 효율적이라고 설명과 더불어 자료를 보여주셔서 의문이 생겼습니다.

 

질문

Q. 선택성이 높으면 조건에 맞는 행이 많아 중복되는 행을 다시 스캔하여 필터링 하기 때문에 인덱스 사용에 비효율적이지 않을까요?

 

그럼 나머지 강의를 일단 수강하며 배움에 즐거움을 만끽하러 가보겠습니다.

 

감사합니다.

 

mysql dbms/rdbms database modeling db 카카오공채-개발

답변 2

1

신동현

안녕하세요, 선택도와 선택성이라는 표현 때문에 오해가 생긴 것 같은데요.

"선택도가 낮다 = 조건에 맞는 행의 비율이 낮다(명확히 걸러진다) = 선택성이 높다" 라고 생각해주시면 됩니다.

0

제로콜라 함 즐길까

감사합니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 제로콜라 함 즐길까님.

인덱스를 설계할 때 선택성(selecitivity)은 중요한 기준입니다. 선택성이란 전체 행에서 특정 조건을 만족하는 행의 비율을 뜻합니다. 여기서 중요한 부분은 “선택성이 높은 컬럼”이라는 표현이 약간 오해의 소지가 있을 수 있다는 점입니다.

  1. 선택성 높은 컬럼 선택: 선택성이 높다거나 낮다는 표현이 상대적일 수 있습니다. 데이터베이스에서는 주로 선택성 낮은(즉, 조건을 충족하는 행의 수가 적은) 컬럼을 인덱스 효율을 높이기 위해 선택합니다. 이는 불필요한 행들을 최소한으로걸러내고, 원하는 데이터에 더 빠르게 접근할 수 있게 하기 위함입니다.

  2. 용어의 혼동 가능성: 선택성이 높다고 한다면, 전체 행 중 더 많은 행이 조건에 부합하는 것을 의미할 수 있지만, 일반적인 인덱스 설계시의 문맥에서는 ‘선택성이 높다’는 표현이 선택적(특정)일 수록 인덱스가 더 잘 작동하는 경향이 있다고 이해할 수 있습니다.

  3. 데이터의 성격에 따른 차이: 어떤 경우에는 선택성이 낮더라도(즉, 중복되는 데이터가 많더라도) 쿼리의 성능 향상을 위해 인덱스를 생성할 수 있습니다. 이는 특정 어플리케이션, 데이터 분포 및 사용 패턴에 따라 달라집니다.

관련하여 더 많은 정보를 원하시면 다음의 링크를 참고해 주세요: 데이터베이스 성능 최적화를 위한 인덱스 설계

질문에 대한 답변이 도움되셨길 바라며, 강의에서 더 많은 인사이트를 얻으시길 바랍니다. 추가적인 의문이나 궁금한 사항이 있으시면 언제든 질문해 주세요. 곧 지식공유자께서도 도움을 드릴 것입니다.

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

문제 풀이 1번 질문

0

11

0

twitterdb 연결이 안돼요

1

24

2

Kafka Cluster 구성도 질문

0

17

1

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

0

38

2

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

0

40

1

온톨로지 구축

0

25

1

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

1

25

1

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

0

40

1

order_product 까마귀발

0

42

2

소스코드 어디서 다운받아요?

0

52

5

정보처리기사 실기 zip

0

42

2

답을언제쯤받아볼수있나요

0

47

2

공통 코드 , 계층 구조 질문

1

35

1

데이터베이스 노션

0

37

2

수업노선자료파일 다운

0

34

2

프로젝트가 없어요..

0

56

2

소스코드 빈 파일 문의드려요

0

41

2

[DB설계] 탈퇴 유저의 구독 정보 유지 및 이메일 마스킹 관련 질문입니다.

0

52

1

자연키 vs 대리키 실무질문

0

28

1

handleBindException 의 기대의도가 방향이 맞는지 궁금합니다.

0

40

2

페이징 처리에서 offset/limit에 대한 질문

1

54

1

커버링 인덱스에 대해서 질문드립니다.

0

136

3

인덱스 사용 패턴 질문

0

99

2

논리적 삭제 적용시 INDEX 생성 전략

0

125

2