Index(인덱스)

김형준 Kim Hyeong Jun·2023년 2월 23일
0
post-thumbnail

Index 란?

인덱스는 데이터베이스의 테이블에 대한 검색 속도를 향상시켜주는 자료구조다.

테이블의 특정 컬럼에 인덱스를 생성하면, 해당 컬럼의 데이터를 정렬한 후 별도의 메모리 데이터의 물리적 주소와 함께 저장된다. 컬럼의 값과 물리적 주소를 key, value 한 쌍으로 저장하는 것이다.

Index 의 장점과 단점

장점

인덱스의 장점은 앞서 말했듯이 우선,
테이블을 검색하는 속도와 성능이 향상된다는 것이다. 또 그에 따라 시스템의 전반적인 부하를 줄일 수 있다.

핵심은 인덱스에 의해 데이터들이 정렬된 형태를 갖는다는 것이다.
기존 WHERE문은 데이터를 찾기 위해 풀 테이블 스캔 작업이 필요했는데, 인덱스를 이용하면 데이터들이 정리려되어 있기 때문에 조건에 맞는 데이터를 빠르게 찾을 수 있다.

단점

  1. 인덱스를 관리하기 위한 추가 작업이 필요
  2. 추가 저장 공간 필요(비용⬆️)
  3. 잘못 사용하는 경우에 오히려 검색 성능 저하

인덱스를 항상 정렬된 상태로 유지해야 하기 때문에 인덱스가 적용된 컬럼에 삽입, 삭제, 수정작업을 수행하면 인덱스에 대한 추가적인 작업도 발생하게 된다.

또한 데이터의 인덱스를 사용하지 않을 경우에는 인덱스를 아예 제거하는 것이 아니라 사용하지 않음으로 처리하고 남겨두기 때문에 수정 작업이 많은 경우 실제 데이터에 비해 인덱스가 과도하게 커질 수도 있다.

활용

인덱스는 장점이 뚜렷한 만큼 단점도 뚜렷한 것 같다.
우리는 어떤 경우에 인덱스를 사용해야할까?

데이터의 범위가 넓으며, 중복이 적고 조회가 많거나 졍렬된 상태가 유용한 컬럼에서 사용하는 것이 좋을 것이다.

  • 규모가 큰 테이블
  • 삽입, 수정, 삭제 작업이 자주 발생하지 않는 컬럼
  • 데이터의 중복도가 낮은 컬럼
  • WHERE, ORDER BY, JOIN 등이 자주 사용되는 컬럼

요약

인덱스란 데이터베이스 테이블에 대한 검색 속도를 향상시켜주는 자료구조를 의미합니다. 특정 컬럼에 인덱스를 생성하면. 컬럼의 값과 함께 물리적 주소를 한 쌍으로 관리하게 됩니다. 인덱스는 규모가 큰 테이블이며, 수정이 잦지 않고 데이터의 중복도가 낮은 컬럼에 사용될 때 장점을 부각시킬 수 있을 것이다.

Reference

[DB] 11. 인덱스(Index) - (1) 개념, 장단점, B+Tree 등
index가 뭔지 설명해보세요 (개발면접시간)

profile
I want be a developer🙂

0개의 댓글