티스토리 뷰

DB

인덱스(Index)

tioon 2023. 8. 14. 19:50
인덱스란?

-인덱스는 데이터베이스에서 검색 성능을 향상시키기 위해 사용되는 데이터 구조입니다.
책의 색인과 유사하게 특정 데이터를 쉽게 찾을 수 있도록 참조를 제공하는 것입니다.

 

 

 

 

 

인덱스의 특징
  • 검색 성능 향상
    -인덱스를 사용해 전체 테이블을 스캔하는 것보다 데이터 검색 성능이 향상됩니다.

  • 정렬 및 집계 최적화
    -데이터를 특정 순서로 정렬된 상태로 유지하여, 집계함수 성능을 향상시킬 수 있습니다.

  • 삽입, 수정, 삭제 오버헤드
    -인덱스가 있는 테이블에서 데이터를 수정할때 인덱스도 갱신되어야 하기에 이과정에서 오버헤드가 일어 날 수 있습니다.

 

 

 

 

 

인덱스 종류

 

  • 트리기반 인덱스
    대부분의 관계형 데이터베이스 시스템에서 사용되는 가장 일반적인 인덱스 유형입니다.
    트리구조로 되어있어 여러 레벨의 노드로 구성되며, 노드들끼리 트리형태로 연결되어있는 구조로 되어있습니다.
    트리구조로 키값이 정렬된 순서를 유지하므로, 검색에 효율적입니다.

    트리기반 인덱스는 3개의 포인터와 2개의 값을 가진 노드가 있는데, 이를 이용해 노드들의 값을 비교하여 다음으로 이동할 포인터를 고릅니다. 이를 이용해 내가 찾고자 하는 값이 있을때까지 노드를 찾아가며 내려갑니다.

 

 

 

 

  • 클러스터형 인덱스
    테이블의 인덱스 구조와 실제 데이터가 함께 저장되는 인덱스입니다. 전화번호부 처럼 인덱스의 키 값에 따라 물리적으로 순서대로 저장되며, 인덱스의 키값은 중복을 허용하지않기 때문에 한 테이블엔 하나의 클러스터형 인덱스만 존재할 수 있습니다.

    따라서, 클러스터형 인덱스는 모든 리프 노드(데이터)들이 하나의 페이지로 관리되며, 이 페이지는 인덱스값을 기준으로 순서대로 정렬되어 저장됩니다.

'DB' 카테고리의 다른 글

정규화, 반정규화  (0) 2023.08.25
데이터모델링의 이해  (0) 2023.08.25
옵티마이저(Optimizer)  (0) 2023.08.14
SQL 집계 함수 vs 그룹 함수 vs 윈도우 함수  (0) 2023.08.11
SQL 서브쿼리  (0) 2023.08.11
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함