해결된 질문
작성
·
457
·
수정됨
1
안녕하세요.
Column에 index를 생성할 때는 SELECT 횟수가 INSERT/UPDATE/DELET 연산보다 많고 column의 데이터 중복도가 낮으며 데이터 양이 많아야 효율적이다라는 것은 이해했습니다. 그렇기 때문에 남자 1% 와 여자 99%인 column에서는 index를 생성하면 안된다는 것도 이해했습니다.
그러다가 만약 "1%와 99%인 column에서 조회만 발생하는데 비즈니스 요구사항에 따라 1%에 대해서만 조회가 일어나면 index를 생성하여도 되는가?"에 대해서 의문이 생겼습니다.
예를 들어 1이 백만개가 있고 2가 1개 있으며 조회가 굉장히 많이 일어나는데 어떠한 경우에서도 2에 대해서만 조회가 발생한다고 한다고 가정했을 때 index를 생성하지 않으면 백만하고도 한 번의 탐색을 해야 합니다. 하지만 index를 하면 한 번의 탐색으로 조회를 완료할 수 있습니다. 이럴 경우에는 index를 생성하는 것이 더 효율적일 수도 있나요?
답변 1
1
안녕하세요 codesver님!
가정해주신 극단적인 상황에서는 index의 효율이 대단히 좋을 수 있겠네요!
아마 index에 대해서 제대로 이해하고 계시기 때문에 이와 같은 가정을 하고 질문을 주신 것 같아요.
실무에서는 해당 회사가 처한 상황이 다 다르기 때문에 교과서적으로 "index는 이런 경우 쓰면 안된댔어!" 라고 하기엔 무리가 있는 것 같아요. 저희는 일단 교과서적인 답변을 배울 뿐 입니다. 하지만 교과서적인 답변을 배우더라도 codesver님처럼 확장하여 생각하면 다양한 변형 문제에 대한 답도 할 수 있겠죠!
공부하시다가 궁금한 점이 더 생기면 언제든 질문 주세요 :)
감사합니다!