[Database]Index 에 대하여

정호석·2022년 6월 22일
0

1. Index란?

인덱스란 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조이다. 만약 우리가 책에서 원하는 내용을 찾는다고 하면, 책의 모든 페이지를 찾아 보는것은 오랜 시간이 걸린다. 그렇기 때문에 책의 저자들은 책의 맨 앞 또는 맨 뒤에 색인을 추가하는데, 데이터베이스의 index는 책의 색인과 같다.
데이터베이스에서도 테이블의 모든 데이터를 검색하면 시간이 오래 걸리기 때문에 데이터와 데이터의 위치를 포함한 자료구조를 생성하여 빠르게 조회할 수 있도록 돕고 있다.

index 기능을 사용하면 select, update, delete 쿼리문의 성능이 향상됩니다.

만약 index를 사용하지 않은 컬럼을 조회해야 하는 상황이라면 전체를 탐색하는 Full Scan을 수행해야 한다. Full Scan은 전체를 비교하여 탐색하기 때문에 처리 속도가 떨어진다.

[ 인덱스(index)의 장점과 단점 ]

장점

* 테이블을 조회하는 속도와 그에 따른 성능을 향상시킬 수 있다.
* 전반적인 시스템의 부하를 줄일 수 있다.


단점

* 인덱스를 관리하기 위해 DB의 약 10%에 해당하는 저장공간이 필요하다.
* 인덱스를 관리하기 위해 추가 작업이 필요하다.
* 인덱스를 잘못 사용할 경우 오히려 성능이 저하되는 역효과가 발생할 수 있다.
[ 인덱스(index)를 사용하면 좋은 경우 ]

* 규모가 작지 않은 테이블
* INSERT, UPDATE, DELETE가 자주 발생하지 않는 컬럼
* JOIN이나 WHERE 또는 ORDER BY에 자주 사용되는 컬럼
* 데이터의 중복도가 낮은 컬럼
profile
welcome

0개의 댓글