[Day 13 | DB] 인덱스(색인) 개념

y♡ding·2024년 10월 30일
0

데브코스 TIL

목록 보기
89/163

1. 데이터베이스에서 특정 단어 중심의 조회

  • 특정 단어 중심 조회란 사용자가 입력한 특정 단어나 키워드를 중심으로 데이터를 검색하는 것을 의미합니다. 예를 들어, 고객 이름이 "홍길동"인 레코드를 검색하거나 상품 이름에 "노트북"이 포함된 데이터를 조회하는 것입니다.
  • 대규모 데이터베이스에서 틀정 단어를 검색할 때는 단순 순차 검색(Sequential Search)보다는 색인을 활용해 검색 속도를 높이는 것이 중요합니다.

2. 색인 (Index)

  • 색인(index)은 데이터베이스 테이블의 특정 열에 대해 검색 속도를 높이기 위해 별도로 구성된 데이터 구조입니다.
  • 책의 목차처럼, 색인은 특정 단어나 값을 빠르게 찾아가기 위한 참조 정보를 제공합니다.
  • 색인은 테이블의 특정 열에 대한 정렬된 가상 테이블로서, 데이터가 추가되거나 변경될 때 자동으로 업데이트됩니다.

색인의 특징과 장점

  • 검색 속도 향상: 색인을 통해 데이터베이스는 필요한 데이터를 빠르게 찾을 수 있습니다.
  • 별도의 가상 테이블: 색인은 실제 데이터를 복사하는 것이 아니라, 특정 열에 대한 정렬된 정보를 별도의 테이블처럼 관리합니다.

색인의 단점

  • 추가적인 저장 공간 사용: 색인을 저장하는 데 별도의 저장공간이 필요합니다.
  • 데이터 조작 성능 저하: 데이터 삽입, 삭제, 수정 시 색인을 재구성해야 하므로, 색인이 많을수록 데이터 조작 성능이 저하될 수 있습니다.

3. 색인의 구조와 방식

  1. 오름차순 / 내림차순 정렬
  • 색인은 기본적으로 오름차순 또는 내림차순으로 정렬됩니다.
  • 예를 들어, `price 컬럼에 색인을 설정하면 가격이 낮은 순서대로(오름차순) 혹은 높은 순서대로(내림차순) 정렬된 색인 테이블이 만들어집니다.
  1. B-Tree (Balanced Tree)
  • 데이터베이스에서 가장 많이 사용되는 색인 구조는 B-Tree입니다.

  • B-Tree는 균형 잡힌 트리로, 루트 노드에서부터 중간값을 기준으로 데이터를 탐색하여 검색 속도를 높입니다.

  • B-Tree 색인은 이진 검색과 유사하게 중간값을 기준으로 데이터를 나누어, 트리의 깊이에 따라 빠르게 검색할 수 있도록 합니다.

    • 루트 노드: 트리의 가장 상위 노드로, 데이터의 최상단을 관리합니다.
    • 리프 노드: 최종적으로 데이터를 가리키는 노드로, 여기서 실제 데이터의 위치가 결정됩니다.
    • 중간 노드: 중간값을 기준으로 좌우로 데이터를 나누어 데이터 검색을 효율적으로 만듭니다.

How Database B-Tree Indexing Works | Built In
B-trees and database indexes
[자료구조]간단히 알아보는 B-Tree


4. 색인을 통한 검색 속도 향상 원리

  • 색인은 데이터베이스가 데이터를 직접 탐색하지 않고 색인 테이블을 통해 검색을 수행하도록 합니다.
  • 예를 들어, 특정 단어가 포함된 레코드를 찾을 때 색인 테이블을 참조하여 대상 레코드를 찾은 후, 해당 페이지로 이동하여 실제 데이터를 조회합니다.

5. 색인의 단계적 구조

색인은 아래의 단계를 통해 실제 데이터로 접근하게 됩니다.
1. 색인: 색인 테이블에서 검색할 단어 또는 값을 찾습니다.
2. 페이지: 색인 테이블이 특정 페이지를 가리키고 있어, 해당 페이지로 이동하여 필요한 레코드를 찾습니다.
3. 본문: 페이지 안의 실제 데이터 영역으로 이동하여 최종 데이터를 가져옵니다.
이와 같은 단계적 구조 덕분에, 대량의 데이터를 빠르게 탐색할 수 있습니다.

0개의 댓글

관련 채용 정보