인프런 커뮤니티 질문&답변

헤이호님의 프로필 이미지
헤이호

작성한 질문수

SW 개발자를 위한 성능 좋은 SQL 쿼리 작성법

Non-SARG, 불필요한 열/행 참조, Index 열에 부정형 사용 주의

부정형을 쓰지 않는다면

해결된 질문

작성

·

243

0

부정형을 사용하지 않는 다면

 

where age <> '19'

라고 작성하는 대신 애초에 작성할 때 

where age <19 OR age >19 

로 작성을 하는 게 좋다라는 말씀이신가요?

 

답변 1

1

김정선SQL님의 프로필 이미지
김정선SQL
지식공유자

안녕하세요 헤이호님,

해당 주제를 여러 번 들어보시면 더 이해에 도움이 되실겁니다.

강의에서 말씀드린대로, (비지니스상) 필요하면 부정형 써야죠. 다만 인덱스 열 (특히 첫 번째 열)에 = 조건으로 가능한데 !=를 사용하거나 NOT IN을 쓰거나 등의 불필요한 부정형을 쓰지 않는 것이 좋다는 내용입니다.

설명은 그렇게 부정형을 썼을 때 그렇지 않은 경우(ex, 위에서 말씀드린 = 조건)에 상대적으로 인덱스를 정상적으로 사용하지 못하거나 인덱스 검색 성능이 크게 떨어질 수도 있습니다.

도움이 되시면 좋겠습니다.

김정선 드림

 

헤이호님의 프로필 이미지
헤이호

작성한 질문수

질문하기