본문 바로가기
개발 지식

index란?

by meetyou 2023. 4. 12.

이번에는 Index에 대해 알아보겠스니다.

 

index란?

인덱스(Index)는 데이터베이스에서 데이터 검색 속도를 높이기 위해 테이블에 추가하는 데이터 구조입니다. 인덱스는 일종의 색인이라고 생각할 수 있습니다. 적절하게 사용하면 데이터베이스의 검색 속도를 상당히 높일 수 있습니다.

인덱스의 동작 원리는 간단합니다. 데이터베이스는 인덱스를 통해 검색을 수행할 필요가 있을 때, 인덱스를 검색해서 해당 테이블의 레코드를 찾습니다. 이렇게 인덱스를 사용하면 검색 속도를 높일 수 있습니다.

 

인덱스는 대개 B-트리 또는 해시 테이블을 사용하여 구현됩니다.

B-트리 인덱스는 키를 정렬한 다음 각 노드에서 키 범위를 비교해서 매칭되는 키를 찾습니다.

해시 인덱스는 해시 함수를 사용하여 키를 해시테이블에서 바로 찾습니다.

 

인덱스의 장단점

장점:

  • 데이터 검색 속도를 향상시키는 데 효과적입니다.
  • WHERE 절에 있는 조건에 인덱스 컬럼을 사용할 경우, 검색 속도가 매우 빨라집니다.

단점:

  • 인덱스를 생성하면 데이터를 추가, 삭제, 수정할 때 인덱스도 함께 갱신되기 때문에 일부 작업은 느려질 수 있습니다.
  • 인덱스는 추가적인 디스크 공간을 사용하기 때문에, 큰 테이블이나 인덱스가 많은 테이블의 경우 저장 공간을 많이 차지할 수 있습니다.
  • 인덱스 생성, 수정, 삭제 등 작업이 잦을 경우 데이터의 일관성을 맞출 때마다 인덱스도 함께 조정해야 하기 때문에 부하가 걸릴 수 있습니다.

결론적으로, 데이터 검색 속도를 향상시키는 유용한 인덱스가 있지만, 적절히 사용하지 않으면 성능 저하나 디스크 공간의 낭비 등의 문제가 발생할 있습니다. 따라서 필요한 인덱스만을 추가하고 유지보수를 하면서 최적화 해야합니다.