[면접 질문] DB Index란?

TraceofLight·2023년 6월 13일
0

InterviewStudy

목록 보기
6/11
post-thumbnail

데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조

인덱스 사용의 장점

  • 테이블 조회 속도 상승으로 인한 성능의 향상
  • 시스템 부하를 줄일 수 있음

인덱스 사용의 단점

  • DB 인덱싱을 위한 추가적인 저장 공간이 필요함
  • DB 관리를 위한 추가적인 작업 및 오버헤드 발생

인덱스 관리

인덱스를 항상 최신 정렬된 상태를 유지해야 원하는 값을 빠르게 탐색할 수 있기 때문에 데이터가 빈번하게 수정되는 속성에 인덱스를 걸게 된다면 역으로 오버헤드로 인한 성능 저하가 발생할 수 있다.

  • INSERT: 삽입 시 삽입된 데이터의 인덱스를 추가
  • DELETE: 삭제한 데이터의 인덱스를 사용안함 처리해야 함
  • UPDATE: 기존 인덱스 사용안함 처리 + 갱신된 데이터 인덱스 추가

사용하는 자료 구조

  • B+ Tree

B Tree 개선 사양

  • 리프 노드에만 데이터를 저장
  • 리프 노드끼리는 연결 리스트의 형태를 가짐
  • Hash Table

Key - Value 한 쌍으로 데이터를 저장
매우 빠른 시간 안에 데이터를 탐색할 수 있음
부등호 연산에 부적합하여 자주 사용하진 않음 (정렬 X)

인덱스의 분류

1. Key에 따른 분류

  • 기본 인덱스: 기본키 포함 (Key의 순서 = 레코드의 순서)
  • 보조 인덱스: 기본키 미포함 (Key의 순서 != 레코드의 순서)

2. 파일 조직에 따른 분류

  • 집중 인덱스
  • 비집중 인덱스

3. 데이터 범위에 따른 분류

  • 밀집 인덱스
  • 희소 인덱스

참고

brunchstory by Nathan

profile
24시간은 부족한 게 맞다

0개의 댓글