출처 : 도서<업무에 바로 쓰는 SQL 튜닝>
1. 오브젝트 스캔유형
1) 테이블 스캔 : 인덱스를 거치지 않고 바로 데이터에 접근하는 유형
테이블 풀 스캔
테이블 풀스캔 방식은 인덱스 없이 데이터에 접근할 수 있는 유일한 방법이다.
주로 where절에 활용할 수 있는 인덱스 컬럼이 없거나
전체 데이터 양에 비해 대량의 데이터를 불러올 때 사용한다.
하지만 테이블을 직접 접근하는 방식이기 때문에 다소 성능이 떨어지는 단점이 있다.
2) 인덱스 스캔: 인덱스를 통해 테이블 데이터를 찾아가는 유형
(1) 인덱스 범위 스캔 :
- 인덱스를 기준으로 삼아 데이터를 찾는 방식
- 좁은 범위에 효율적
- WHERE절의 BETWEEN A AND B/ < / > / LIKE
(2) 인덱스 풀 스캔 :
- 인덱스 탐색을 처음부터 끝까지 수행
- 인덱스 구성 열정보만 요구할 때 수행
- 테이블 풀 스캔방식에 비해 성능상 유리하나 최대한 검색 범위를 줄일 수록 유리
(3) 인덱스 고유 스캔
- 기본키나, 고유 인덱스로 테이블에 접근하는 방식
- 인덱스 스캔방식중 가장 효율적
- 해당 조인 컬럼이 기본 킨 혹은 고유 인덱스의 선두열로 설정되고, WHERE절의 '='
(4) 인덱스 루스 스캔
- 인덱스의 필요한 부분만 골라 스캔하는 방식
- WHRE절의 조건문 기준, 필요한 데이터컬럼의 인덱스만 스캔
- 주로 GROUP BY, MAX(), MIN()
(5) 인덱스 병합 스캔
- 테이블 내 생성된 인텍스를 통합해 스캔
- 옵티마이저의 실행 계획에 의해 조건절의 컬럼들을 가져와 결합과 교체방식을 통해 활용하여 실행
- 이 경우 별개로 존재하는 인덱스들에 대해 각각 스캔이 실행되기 때문에 인덱스통합이나, 하나의 인덱스로 통일하는 튜닝 필요
728x90
'컴퓨터과학 > DB' 카테고리의 다른 글
| [SQL_튜닝] 실행계획 항목 (0) | 2022.12.19 |
|---|---|
| [데이터베이스] Maria DB 기본 명령어 (0) | 2022.12.16 |
| [MySQL] 초기 유저관리 (0) | 2022.10.14 |
| [데이터 모델설계] 기본키 (0) | 2022.02.11 |
| [OracleSQL] 로컬 DB 초기 권한 설정 (0) | 2022.02.11 |