본문 바로가기
기타 개념정리

SQL에서 인덱스가 필요한 이유

by wakestand 2021. 2. 2.
반응형

SQL에서 인덱스는 테이블의 데이터에 대한 포인터를 말하는데

책의 목차와 비슷한 개념이라고 보면 된다

 

책에 목차가 있으면 특정 내용이 어디에 있는지 알기 쉬운 것처럼

테이블에 인덱스를 삽입하면 SELECT, WHERE 시 속도를 높여서

조회 결과를 더 빨리 얻을 수 있게 해준다 

반면 INSERT, UPDATE 시에

인덱스가 들어있으면 속도가 느려진다

 

인덱스는 테이블 내에 데이터가

엄청나게 많을 경우에 주로 사용하는데

일반적인 예제는 데이터가 몇백~몇천만을 넘어가는 테이블에

인덱스가 모두 들어가 있는 것을 확인할 수 있다

인덱스를 넣지 않으면 테이블 조회 시

엄청난 시간이 걸리는 관계로 그냥 굳어버려서

사용할 수 없기 때문이다

 

인덱스를 넣으면 조회 속도도 빨라지고 좋아 보이지만

다음과 같은 경우에는 별로 권장하지 않는데

먼저 테이블에 데이터가 얼마 없을 경우에는

그냥 인덱스를 쓰지 않는 편이 더 빠르다

 

그리고 인덱스로 사용하는 열에

NULL이 지나치게 많으면 효율이 떨어지기 때문에

해당 열을 인덱스로 사용하면 안된다

 

그리고 마지막으로 인덱스를 넣은 테이블에

INSERT나 UPDATE를 많이 사용하면

인덱스를 넣지 않는 것을 권장하지만

 

실제 업무에서는 SELECT만 하는 테이블이 별로 없기 때문에

인덱스를 넣은 테이블에 주기적으로 대량의 INSERT, UPDATE를

하는 경우를 많이 발견할 수 있는데

딱히 방법이 없기 때문에 인덱스도 넣고

그 테이블에 INSERT와 UPDATE도 하게 되는 것이다

반응형

댓글