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