728x90
1. 인덱스란?
추가적인 쓰기 작업과 저장 공간을 활용하여 테이블에 대한 동작 속도를 향상시키기 위한 자료구조다.
책의 색인과 같은 역할을 수행(자료의 위치 기억)
INDEX를 활용하면 SELECT, UPDATE, DELETE의 성능이 향상된다. 만약 INDEX를 사용하지 않는다면 특정 컬럼을 조회할 때 전체를 탐색하는 FULL SCAN을 수행하게 되어 처리 속도가 떨어진다.
2. 인덱스의 관리
DBMS는 index를 항상 최신의 정렬된 상태로 유지해야 원하는 값을 빠르게 탐색할 수 있다. 그렇기 때문에 인덱스가 적용된 컬럼에 INSERT, UPDATE, DELETE가 수행된다면 각각 다음과 같은 연산을 추가적으로 해주어야 하며 그에 따른 오버헤드가 발생한다.
- INSERT: 새로운 데이터에 대한 인덱스를 추가함
- DELETE: 삭제하는 데이터의 인덱스를 사용하지 않는다는 작업을 진행함
- UPDATE: 기존의 인덱스를 사용하지 않음 처리하고, 갱신된 데이터에 대해 인덱스를 추가함
3. 인덱스의 장점과 단점
장점
- 테이블을 조회하는 속도와 그에 따른 성능을 향상시킬 수 있다.
- 전반적인 시스템의 부하를 줄일 수 있다.
단점
- 인덱스를 관리하기 위해 DB의 약 10%에 해당하는 저장공간이 필요하다.
- 인덱스를 관리하기 위해 추가 작업이 필요하다.
- 인덱스를 잘못 사용할 경우 오히려 성능이 저하되는 역효과가 발생할 수 있다.
참고문헌
https://mangkyu.tistory.com/96
728x90
'Computer Science > DB' 카테고리의 다른 글
정규화를 하는 이유와 방법 (0) | 2021.05.31 |
---|---|
ACID 속성이란? (0) | 2021.05.31 |
DDL, DCL, DML, TCL (0) | 2021.05.31 |
댓글