-
INDEX와 TABLESQL 2020. 2. 11. 12:28
정의
- 정렬해놓고 색인마냥 찾아가는 개념
- 테이블의 일부 컬럼을 기준으로 데이터를 정렬한 객체
- 테이블의 ROW를 가리키는 주소를 가지고 있다. (ROWID)
* ROWID는 테이블의 주소
주소를 알면 바로 접근가능
- 정렬된 인덱스의 기준으로 해당 ROW의 위치를 빠르게 검색하여 원하는 테이블의 원하는 행에 빠르게 접근
- 테이블에 데이터를 입력하면 인덱스 구조도 갱신된다.
TABLE
- 입력 순서대로 데이터 저장 : 비 순차적인 블록
* DELETE 등을 사용하면서 비 연속적인 블록 구성
- 대용량 테이블 엑세스 시 과도한 블록 읽기 발생
테이블 조회 방법
1. FULL TABLE SCAN
-> 인덱스 없이 SELECT 절로 조회
-> 즉, 테이블 다 읽고 WHERE에 걸리는거 버리고 - > 읽고서 버림
필터로 EMPNO = 7782걸로 거름
2. INDEX SCAN
-> 인덱스 있이 조회
-> 필요한 것만 읽음
* access("EMPNO=7782")로 바로 엑세스 (필터 X)
--> 해당 인덱스를 찾아서 인덱스 주소로 접근하는 방식 ( 불필요 데이터 읽지 X)
** 인덱스가 없는 컬럼을 대상으로 조회하면 별 효용 없음
3. FAST FULL INDEX SCAN
SELECT 조회 컬럼이 테이블 접근에 미치는 영향
UNIQUE VS NON-UNIQUE 인덱스
* RANGE SCAN으로 실행됌
--> NON-UNIQUE 인덱스기 때문에 같은 값이 또 등장할 수 있어서 다음값까지 읽어보고 조회 함
인덱스 추가 설명
인덱스 추가 실습
1. 한개의 컬럼에 인덱스 있을 때
2. 두개의 컬럼에 인덱스가 있을 때
3. 문자열 검색시 '%문자' 형태인 경우
'SQL' 카테고리의 다른 글
B-Tree 인덱스 (0) 2020.02.12 INDEX 설계 (0) 2020.02.12 시퀀스 (SESQUNE) (0) 2020.02.11 VIEW (0) 2020.02.11 주석 확인 / 생성 (0) 2020.02.11