반응형
Ⅰ. 검색 연산을 최적화 하기 위한 인덱스의 개요
가. 인덱스의 정의
정의 | - 데이터베이스에 저장된 자료를 빠르게 조회하기 위해 테이블에 연관되어 독립적인 저장공간 보유 객체 |
나. 인덱스의 특징
특징 | 설명 |
성능향상 | - 트랜잭션의 성능향상이 목적 - 조회 성능 향상이 주 목적 |
알고리즘 | - 트리 구조, 해시 함수 등 알고리즘 적용 |
독립성 | - 테이블에 저장구조와 별도로 인덱스만 저장 가능 |
Trade-Off | - 조회와 나머지 성능을 고려하여 인덱스 생성 |
Ⅱ. 인덱스의 스캔 방식
스캔 종류 | 개념도 | 설명 |
인덱스 전체 스캔 |
- 인덱스의 모든 데이터 전체를 읽어오는 방법 - WHERE |
|
인덱스 범위 스캔 |
- 인덱스의 일부 데이터의 범위를 지정하여 읽어오는 방법 - WHERE, JOIN |
|
인덱스 고유 스캔 |
- 인덱스의 유일한 값을 검색하는 방법 - PRIMARY KEY, UNIQUE |
|
인덱스 루스 스캔 |
- 인덱스의 일부 데이터의 범위를 지정하지 않고 일부만 읽어오는 방법 - WHERE절 LIKE |
|
인덱스 병합 스캔 |
- 여러개의 인덱스를 병합하여 검색하는 방법 - UNION ALL |
Ⅲ. 인덱스의 종류
분류 기준 | 인덱스 | 설명 |
형태 | 트리 기반 인덱스 | - 트리 기반으로 데이터 검색 - RDBMS는 대부분 B-tree |
해쉬 기반 인덱스 | - 해시 테이블 이용하여 데이터 검색 - =, <=, >= 연산자 이용 가능 |
|
비트맵 인덱스 | - 최소 단위 비트 이용 컬럼값 저장 - ROWID 자동 생성 인덱스 |
|
목적 | 함수기반 인덱스 | - 사용자 정의 함수 결과를 인덱스로 사용 |
조인 인덱스 | - DW에서 조인 쿼리의 처리 가능 | |
도메인 인덱스 | - 사용자 정의 인덱스 타입 사용 - 텍스트, 카테고리 인덱스 등 |
|
구조 | 정적 인덱스 | - 데이터 삽입 삭제에 따라 인덱스 내용은 변하지만 구조는 변하지 않는 기법 |
동적 인덱스 | - 인덱스와 데이터 파일을 블록으로 구성하여 데이터 삽입 공간 준비해두는 기법 | |
논리 | 논리적 인덱스 | - 인덱스 생성 시 컬럼의 속성과 유형에 따라 분리 |
물리적 인덱스 | - 인덱스 저장되는 데이터 구조에 따라 분리 |
- 인덱스는 DB 검색 속도 향상을 위한 객체로 목적에 따라 다양한 형태 존재
Ⅳ. 인덱스 선정 시 고려사항
고려사항 | 설명 |
인덱스 사용 여부 | - 인덱스 사용 시 효과 여부 확인 - 인덱스 역할 중복 시 악영향 발생 |
이상적 구성 | - 이상적인 구성으로 인덱스 역량 향상 - 최소 인덱스로 모든 엑세스 수용 |
실측자료 활용 | - 가능한 실측자료 활용 종합 분석 - 엑세스 빈도, 분포도, 테이블 크기 |
반응형
'IT 기술 > DB' 카테고리의 다른 글
빅데이터 통합 관리 (0) | 2024.12.04 |
---|---|
데이터 독립성 (0) | 2024.12.04 |
분산 데이터베이스의 투명성 (0) | 2024.12.04 |
데이터옵스 (DataOps) (0) | 2024.12.04 |
데이터베이스 트랜잭션 (0) | 2024.12.04 |