일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- npm Option
- javascript new
- Index Range Scan
- Index Skip Scan
- Loose Index Scan
- 연결리스트
- C#
- 연결 리스트
- 배열 스택
- 스택
- 배열
- javascript 생성자
- c언어 스택 배열
- 스택 배열
- 자료구조
- Index Full Scan
- 연동
- 큐 연결리스트
- pattern
- javascript this
- javascript prototype
- new 사용법
- access
- 포인터
- 확장 엘리먼트
- jQuery
- 이중 연결 리스트
- 생성자
- 생성자 new
- 추상적 자료 구조
Archives
- Today
- Total
Open-Closed Principle
MySQL 인덱스 스캔(Index Scan) 본문
Index Range Scan
- 인덱스에서 조건을 만족하는 값이 저장된 위치를 찾는다. 이 과정을 인덱스 탐색(Index Seek)이라고 한다.
- 탐색된 위치부터 필요한 만큼 인덱스를 차례대로 쭉 읽는다. 이 과정을 인덱스 스캔(Index Scan)이라고 한다
- 읽어 들인 인덱스 키와 레코드 주소를 이용해 레코드가 저장된 페이지를 가져오고, 최종 레코드를 읽어온다.
Index Full Scan
- 인덱스의 처음부터 끝까지 모두 읽는 방식을 인덱스 풀 스캔이라고 한다. 대표적으로 쿼리의 조건절에 사용된 컬럼이 인덱스의 첫 번째 카럼이 아닌 경우 인덱스 풀 스캔 방식이 사용된다.
- 인덱스의 크기는 테이블의 크기보다 작으므로 직접 테이블을 처음부터 끝까지 읽는 것보다는 인덱스만 읽는 것이 효율적이다.
- 인덱스뿐만 아니라 데이터 레코드까지 모두 읽어야 한다면 절대 이 방식으로 처리되지 않는다.
예) 인덱스는 (A, B, C)칼럼의 순서로 만들어져 있지만 쿼리의 조건절은 B 칼럼이나 C 칼럼으로 검색하는 경우다.
Loose Index Scan
- 루스 인덱스 스캔은 인덱스 레인지 스캔과 비슷하게 작동하지만 중간에 필요치 않은 인덱스 키 값은 무시(SKIP)하고 다음으로 넘어가는 형태로 처리 한다. 일반적으로 GROUP BY 또는 집합 함수 가운데 MAX( ) 또는 MIN( ) 함수에 대해 최적화를 하는 경우에 사용된다.
Index Skip Scan
- WHERE 조건절에 조건이 없는 인덱스의 선행 칼럼의 유니크한 값의 개수가 적어야 합 예) ENUM( 'M', 'F')
- 쿼리가 인덱스에 존재하는 칼람만으로 처리 가능해야 함 (커버링 인덱스)
'Programming > MySQL' 카테고리의 다른 글
MySQL 현재 시각 조회(NOW, SYSDATE) (0) | 2022.07.05 |
---|---|
MYSQL 사용자 계정 추가 (비밀번호관리) (0) | 2022.06.28 |
MySQL 사용자 계정 추가 (인증플러그인) (0) | 2022.06.27 |