인덱스는 데이터베이스에서 자료를 더 찾기 쉽게 만들어주는 자료구조이다.
예를 들어 가위 라는 단어를 찾을때 ㄱ -> 가 -> 가위 이런 순서대로 찾으면 더욱 쉽게 찾을 수 있다.
하지만 모든 테이블을 인덱스로 만들면 좋지 않냐 라고 물어볼 수 있지만 그러면 좋지 않다.
책이 3권만 있을 경우 보이는 상태에서 하나 찾는게 훨씬 빠르다.
그러므로 인덱스를 사용하는 상황은 규모가 큰 테이블, 생성,수정,삭제가 드문 테이블이 적합하다.
인덱스 생성
인덱스는 기본적으로 오름차순으로 되기 때문에 내림차순으로 만들기 위해 뒤에 DESC를 선언한다.
CREATE INDEX 인덱스 이름 ON 정렬할테이블(정렬 방법);
이 문법으로 코드를 생성하면 다음과 같다.
CREATE INDEX NAME_DSC ON STUDENT_TABLE(NAME DESC);
인덱스 조회
테이블에 존재하는 인덱스를 확인하는 문법은 다음과 같다.
SELECT * FROM ALL_INDEXES WHERE TABLE_NAME = '테이블 이름';
이 문법을 적용하면
SELECT * FROM ALL_INDEXES WHERE TABLE_NAME ='STUDENT_TABLE';
인덱스 재생성
B+ TREE 자료구조상 테이블의 내용이 삭제 될 때 인덱스는 삭제가 안된 상태로 남아있는 상황이 발생한다. 이를 재배치 하기 위해 재생성을 해야하는 경우가 있다.
문법은 REBUILD 문법을 사용한다.
ALTER INDEX 인덱스이름 REBUILD;
'프로젝트 > 데이터베이스' 카테고리의 다른 글
[ORACLE] 오라클 데이터 복구 방법(TIMESTAMP) (2) | 2022.09.27 |
---|---|
[ORACLE] 프로시저와 트리거 차이 (0) | 2022.09.26 |
[ORACLE] 데이터베이스 문제 사이트 추천 (0) | 2022.09.26 |
트리거(Trigger)에 대한 설명, 사용법, 예시코드[ORACLE] (0) | 2022.09.26 |
프로시저(Procedure)에 대한 기초 설명, 사용법, 예시[ORACLE] (0) | 2022.09.26 |