데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조
인덱스 사용의 장점
- 테이블 조회 속도 상승으로 인한 성능의 향상
- 시스템 부하를 줄일 수 있음
인덱스 사용의 단점
- DB 인덱싱을 위한 추가적인 저장 공간이 필요함
- DB 관리를 위한 추가적인 작업 및 오버헤드 발생
인덱스 관리
인덱스를 항상 최신 정렬된 상태를 유지해야 원하는 값을 빠르게 탐색할 수 있기 때문에 데이터가 빈번하게 수정되는 속성에 인덱스를 걸게 된다면 역으로 오버헤드로 인한 성능 저하가 발생할 수 있다.
- INSERT: 삽입 시 삽입된 데이터의 인덱스를 추가
- DELETE: 삭제한 데이터의 인덱스를 사용안함 처리해야 함
- UPDATE: 기존 인덱스 사용안함 처리 + 갱신된 데이터 인덱스 추가
사용하는 자료 구조
B Tree 개선 사양
- 리프 노드에만 데이터를 저장
- 리프 노드끼리는 연결 리스트의 형태를 가짐
Key - Value 한 쌍으로 데이터를 저장
매우 빠른 시간 안에 데이터를 탐색할 수 있음
부등호 연산에 부적합하여 자주 사용하진 않음 (정렬 X)
인덱스의 분류
1. Key에 따른 분류
- 기본 인덱스: 기본키 포함 (Key의 순서 = 레코드의 순서)
- 보조 인덱스: 기본키 미포함 (Key의 순서 != 레코드의 순서)
2. 파일 조직에 따른 분류
3. 데이터 범위에 따른 분류
참고
brunchstory by Nathan