DAY09. 인덱스 & 집합

sumin·2023년 7월 13일
0

아카데미

목록 보기
9/82
post-thumbnail

인덱스(INDEX)

  1. 빠른 조회를 지원하는 데이터베이스 객체이다.
  2. 어떤 데이터가 어떤 ROWID를 가지고 있는지 알고 있다.
  3. 기본키(PK)와 중복이 없는 칼럼(UNIQUE)은 자동으로 인덱스가 만들어진다.
  4. 인덱스가 많으면 데이터의 삽입/수정/삭제 시 인덱스도 함께 갱신해야 하기 때문에 전체적인 성능이 떨어질 수 있다.

ROWID

 1. 오라클에서 제공하는 가상 칼럼(PSEUDO COLUMN)이다.
 2. 어떤 행이 어디에 저장되어 있는지 알고 있는 칼럼이다.
 3. 실제로 저장된 물리적 저장위치를 확인할 수 있다.

장점

검색(SELECT) 속도가 굉장히 빨라질 수 있다.
검색(SELECT) 쿼리의 부하가 줄어들면 곧 시스템 전체 성능이 향상된다.

단점

인덱스를 별도로 저장해야 하기 때문에 DB 크기의 10% 정도 추가 공간이 필요 하다.
변경 작업 (INSERT, UPDATE, DELETE)가 자주 발생되면 오히려 성능이 떨어질 수 있다.

인덱스를 타는 조회

SELECT *
FROM EMPLOYEES
WHERE EMPLOYEE_ID = 150;

인덱스를 안 타는 조회

인덱스 칼럼을 그대로 사용하지 않고 함수를 적용해서 사용하면 인덱스를 타지 않는다.
SELECT *
FROM EMPLOYEES
WHERE TO_CHAR(EMPLOYEE_ID) = '150';

집합

  1. 2개 이상의 테이블을 한 번에 조회하는 방식 중 하나이다.
  2. 모든 SELECT 절의 칼럼 순서와 타입이 일치해야 한다.
  3. 집합연산자
    1) UNION : 합집합, 중복 값은 한 번만 조회
    2) UNION ALL : 합집합, 중복 값도 그대로 조회
    3) INTERSECT : 교집합, 중복 값은 한 번만 조회
    4) MINUS : 차집합, 첫 번째 SELECT 결과에서 두 번째 SELECT 결과를 뺀다.
  4. 형식
    SELECT 칼럼1, 칼럼2, ...
    FROM 테이블1
    집합연산자
    SELECT 칼럼1, 칼럼2, ...
    FROM 테이블2
    [ORDER BY 정렬]
profile
백엔드 준비생의 막 블로그

0개의 댓글