inflearn logo
강의

Course

Instructor

Young-han Kim's Practical Database - Basic Course

Composite Index Summary

인덱스 설계와 실제 운영의 관계

68

작성자 없음

0 asked

0

혹시 테스트 데이터베이스에서 인덱스를 설계하고, EXPLAIN을 통해 점검도 했는데, 실제 서비스 운영에서는 정작 풀 테이블 스캔 결과가 더 빠른 경우가 존재할 수도 있나요?

 

sql mysql dbms/rdbms SQLD

Answer 1

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. 베몬아현아사랑해님.

인덱스는 일반적으로 쿼리의 성능을 개선하기 위한 중요한 도구입니다. 하지만, 모든 상황에서 인덱스가 항상 이점을 제공하는 것은 아닙니다. 다음의 이유로 인해 풀 테이블 스캔이 오히려 더 효율적일 수 있습니다:

  1. 작은 테이블 크기: 테이블이 작다면, 인덱스를 사용하여 검색하는 것보다 그냥 테이블 전체를 스캔하여 검색하는 것이 더 빠를 수 있습니다. 인덱스는 추가적인 I/O 연산을 수반하기 때문에 작은 데이터셋에서는 성능 이점이 줄어들 수 있습니다.

  2. 인덱스가 포함되지 않은 조건: 쿼리 조건에 인덱스가 적용되지 않는 컬럼이 포함되는 경우, 인덱스를 거치기보다는 전체 스캔이 더 효율적일 수 있습니다.

  3. 데이터 편향: 조건문의 특정 값들이 인덱스를 타고 들어가기보다는 경우에 따라 풀 테이블 스캔을 하는 것이 더 나을 수 있습니다. 예를 들어, 클러스터링이 안 된 상태에서 인덱스가 해결책이 되지 않는 경우입니다.

  4. 통계 정보 부정확: 인덱스의 선택도는 데이터베이스 옵티마이저에서 사용되는 통계 정보에 의존합니다. 통계 정보가 최신 상태가 아니면, 옵티마이저가 잘못된 결정을 내릴 수 있습니다.

관련된 주제로 한 질문이 예시 프로젝트와 실제 인덱스 테스트를 통한 최적화 방법을 다루고 있으니 확인해 보시면 도움이 될 것입니다.

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

ON을 명시하지 않았을 경우 질문드립니다.

0

56

1

강의 2:53 union을썼는데도 션이 중복

0

57

1

where 대신 having을 써도 되나요?

0

79

1

주문 내역에 대한 고객 데이터

0

60

2

in 수행

0

43

1

외부조인1 강의 관련 질문

0

71

3

커버링 인덱스와 랜덤i/o 질문

0

68

1

오타인거죠?

0

76

1

섹션 3 퀴즈 3번 문제

0

73

2

GROUP BY 기준 컬럼

0

84

1

질문이 있습니다

0

54

1

오타

0

76

2

실제 상용 서비스 질문

0

97

1

파티셔닝 관련 질문입니다.

0

57

1

join 문제 풀이2 문제1(self join) 질문

0

64

1

9. 인덱스2.pdf 중에서

0

77

1

문제 2번

0

66

2

문제와 풀이1 - 3번 문제

-1

70

2

잘 사용하진 않지만 풀 외부 조인을 사용하신 사례가 궁금합니다!

0

91

1

[58. 인덱스와 정렬]을 듣다가 질문입니다.

0

93

2

두개 이상의 테이블을 조인할때 인덱스 질문이 있습니다.

0

59

1

파일을 만드는 단위가 궁금해요

0

70

1

MySQL은 실무에서 사용하는 케이스도 있을까요?

0

80

1

JOIN 방향에 따른 결과 행수와 효율적 데이터 조회 방법 질문

0

77

1