Cracking Code

SQL - INDEX 본문

Database

SQL - INDEX

CrackCo 2020. 7. 23. 18:33
데이터가 많을수록 찾고자 하는 데이터를 찾는다는 것은 점점 시간이 많이 소요될 것입니다.
이번 시간엔 소요 시간을 줄이고자 데이터베이스에서 사용하는 INDEX에 대해 알아보겠습니다.

인덱스는 검색 속도를 높이기 위해 Oracle 서버가 사용하는 스키마 객체입니다.

인덱스 없이 데이터를 검색하면 테이블의 모든 데이터를 읽어 데이터를 선별합니다.

테이블을 삭제하면 관련 인덱스는 자동으로 생성됩니다.

 

INDEX 생성

PRIMARY KEY와 UNIQUE 제약 조건 지정 시, UNIQUE INDEX는 자동으로 생성됩니다.

 

수동으로 생성하기

CREATE INDEX index
ON table (column,[, column] ...);

 

사원 테이블의 이름이 SMITH인 사원을 찾아봅시다.

SELECT * FROM EMP
WHERE ENAME = 'SMITH';

F10 키를 누르면 계획 설명이 나오는데 OPTIONS에 FULL을 확인할 수 있습니다.

이는 모든 행을 탐색하여 결과를 도출하는 옵션입니다.

인덱스가 없으면 모든 행을 탐색하게 됩니다.

 

사원 테이블의 ENAME 컬럼의 인덱스를 생성해봅시다.

CREATE INDEX EMP_ENAME_IDX
ON EMP(ENAME);

다시 한 번 사원 테이블의 이름이 SMITH인 사원을 찾아봅시다.

INDEX를 사용하여 탐색하는 것을 확인할 수 있습니다.

 

INDEX 삭제

DROP INDEX index;

테이블을 삭제하는 것처럼 index도 비슷하게 삭제할 수 있습니다.

 

🚨인덱스의 경우 NOT, NULL, 컬럼의 형변환이 들어간 조건절에는 사용하지 않습니다.

'Database' 카테고리의 다른 글

SQL - GRANT, REVOKE  (0) 2020.07.23
SQL - CREATE, ALTER, DROP USER  (0) 2020.07.23
SQL - SEQUENCE (시퀀스)  (0) 2020.07.22
SQL - VIEW (뷰)  (0) 2020.07.22
SQL - ALTER TABLE  (0) 2020.07.22
Comments