초보 프로그램 개발자

[ 7주차 ] Oracle 데이터베이스 (INDEX) 본문

교육 일지/Database

[ 7주차 ] Oracle 데이터베이스 (INDEX)

Ji_HG 2023. 6. 16. 18:00
INDEX
  • 검색시간을 줄이기 위한 데이터 구조 이다.
  • 단점으로 별도의 저장공간 (데이터와는 별도의 장소에 저장, 데이터 저장 크기의 5~20%)
  • 관리자의 수고 (인덱스 재설정, 단편화)
SELECT ROWID,ENAME FROM EMP; --ROWID

EMP TABLE

  • 위의 테이블에서 ROWID 데이터명을 보면 마지막 3문자는 AAA, AAB,AAC... 으로 끝나게 된다.
  • AAA, AAB가 의미하는것이 데이터의 위치이다.
  • 예를들어 AAB 는 1번 파일의 1번 블럭의 2번째 행 이라는 소리이다.

 

CLUSTERED INDEX / NON CLUSTERED INDEX
  • MS-SQL은 데이터가 추가될 때 정렬되어 들어가게 된다. (CLUSTERED INDEX)
    • 장점 : 데이터를 찾는 속도가 빠르다
    • 단점 : 입력 속도가 느리다. 예를들어 1만개의 데이터가 있다 할 때 1개의 데이터를 입력하려면
    • 1만개의 데이터와 비교하여 정렬되어 들어가야 한다.
  • ORACLE은 데이터가 들어온 순서대로 들어가게 된다 (NON CLUSTERED INDEX)
    • 장점 : 데이터 삽입이 빠르다
    • 단점 : 데이터를 찾는 속도가 느리다.
INDEX 생성
CREATE INDEX 인덱스명
ON 테이블(컬럼);

SELECT 할때 테이블의 모든 컬럼을 찾아봤는데 

위와 같이 만들게 되면 바로 지정해준 컬럼명으로 들어가서 검색하게 된다.