반응형
옵티마이저(optimizer)란?
실행 계획에 의한 정해진 우선순위 또는 통계 정보를 이용하여 select 문의 질의 성능이 최적화될 수 있도록 실행 계획을 수립하는 데이터베이스 시스템 요소
옵티마이저 방식
구분 | RBO | CBO |
개념 | 사전에 정의된 규칙 기반 계획 | 최소 비용 계산, 실행 계획 수립 |
기준 | 실행 우선순위 | 액세스 비용 |
성능 | 사용자의 SQL 작성 숙련도 | 옵티마이저 예측 성능 |
특징 | 실행 계획의 예측이 용이함 | 저장된 통계 정보의 활용 |
고려 사항 | 저효율, 사용자의 규칙 이해도 | 예측 복잡, 비용 산출 공식 정확성 |
인덱스란?
데이터를 찾기 위한 '색인'으로 데이터의 주소록이라고 할 수 있음
데이터를 빠르고 효율적으로 조회하기 위해 사용하는 것으로, 데이터베이스 시스템에 의해 자동으로 생성되기도 하고 사용자가 수동으로 생성하기도 함
인덱스 특징
* 테이블의 데이터 값에 빠르게 액세스하도록 하는 데이터베이스 객체임
* 데이터를 빠르게 찾을 수 있기 때문에 디스크 액세스 횟수를 줄일 수 있음
* 데이터베이스 시스템이 인덱스를 자동으로 사용하고 유지 보수하므로 사용자는 인덱스를 직접 조작할 필요가 없음
* 언제든지 생성하거나 삭제할 수 있으며 테이블이나 다른 인덱스에 영향을 주지 않음
인덱스 종류
1) B트리
* 데이터의 종류가 많고 동일한 데이터가 적은 경우에 주로 사용
* 루브 블록부터 브랜치 블록, 리프 블록까지 사용자가 원하는 값을 순차적으로 찾아가는 트리 기반 인덱스
종류 | 설명 | 사용 예 |
unique index | 중복 데이터가 없는 경우 사용 | 기본 키, 유일 키 데이터 |
non-unique index | 중복 데이터 있는 경우에 빠른 검색 결과 보장 | 인덱스가 필요한 일반적인 데이터 |
descending index | 내림차순 데이터 값으로 인덱스 생성 | 매출, 최근 일자 |
composite index | 여러 열을 합쳐서 하나의 인덱스 생성 | 여러 조건이 필요한 경우 ex) 고객번호와 매출 |
2) 비트맵
* 데이터의 종류가 적고 동일한 데이터가 많은 경우 주로 사용
* 데이터 변경 빈도가 낮은 경우가 유리함
* 예시) 가입여부(Y/N), 성별(M/F) 등
반응형
'DBMS' 카테고리의 다른 글
[이론 정리] 뷰, 가상테이블을 사용하는 이유와 특징, 종류 (0) | 2022.09.18 |
---|---|
[이론 정리] 트랜잭션의 특징, 상태 제어, 동시성 제어 (1) | 2022.09.17 |
[개념 구분] delete, truncate, drop 구분해서 사용하기 (0) | 2022.09.17 |
[이론 정리] 데이터 무결성 (0) | 2022.09.17 |
DBeaver와 DB 연결 (Mariadb) (0) | 2021.07.04 |