ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • INDEX와 TABLE
    SQL 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. 두개의 컬럼에 인덱스가 있을 때

    job, ename 컬럼에 인덱스 생성

    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

    댓글

Designed by Tistory.