인덱스(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 |