본문 바로가기
CS 지식

인덱스(Index)

by chanfficial 2022. 11. 28.

인덱스(Index)

: 인덱스는 데이터베이스 테이블의 검색 속도를 높여주는 자료구조이며 우리가 책을 읽을 때 색인을 추가하는 것과 같다.

 

 

인덱스의 관리

DBMS 는 인덱스를 항상 최신의 정렬된 상태로 유지해야 원하는 값을 빠르게 찾을 수 있다. 따라서 인덱스가 추가된 컬럼에 INSERT, UPDATE, DELETE 가 수행된다면 추가적으로 아래와 같은 연산을 해야 한다.

  • INSERT :  새로운 데이터에 대한 인덱스를 추가
  • DELETE : 삭제하는 데이터의 인덱스를 사용하지 않는다고 하는 작업을 진행
  • UPDATE : 기존의 인덱스를 사용하지 않는 것으로 처리하고, 갱신된 데이터의 인덱스를 추가

 

인덱스를 사용하면 테이블을 조회하는 속도가 빨라져 전반적인 시스템의 부하를 줄일 수 있는 장점이 있는 방면에 단점도 존재한다.

  • 인덱스 관리를 위해 DB 의 약 10% 에 해당하는 저장공간이 필요하며 관리를 위한 추가 작업이 필요
  • 인덱스를 잘못 사용하면 성능이 저하되기도 함

 

인덱스를 사용하면 좋은 경우

  • INSERT, UPDATE, DELETE 가 자주 발생하지 않는 컬럼
  • 중복되는 데이터가 적은 컬럼
  • JOIN 이나 ORDER BY 절에서 자주 사용되는 컬럼
  • 항상 = 로 비교되는 컬럼

'CS 지식' 카테고리의 다른 글

결합 인덱스(Composite Index)  (0) 2022.12.04
기본 인덱스(Primary index)와 보조 인덱스(Secondary index)  (1) 2022.12.04
Blocking 과 Non-Blocking  (0) 2022.11.26
TLS(SSL) HandShake  (0) 2022.11.15
HTTP의 GET 과 POST  (0) 2022.11.12