인덱스
INDEX
조회속도 향상을 위해
조건에 해당하는 컬럼에 인덱스를 생성(지정)
가장 일반적인 B-tree 인덱스는
인덱스 키와 이 키에 해당하는 테이블의 행이 저장된 주소 값으로 구성됨
왜 쓸까?
사이트에서 조회시 이름검색이 많은데 속도가 느리다고 한다.
예시 ) WHERE ENAME LIKE '%%';
인덱스를 만들어야 하는 기준
1) 테이블에 행의 개수가 많을 경우(데이터 건수가 많을 경우)
: 10만건 이상
2) WHERE(조건절)에 해당 컬럼이 많이 등장할 경우
3) 테이블 조인의 공통컬럼으로 사용될 경우
인덱스 명명법
IX_테이블명_컬럼명 , IDX_테이블명_컬럼명
< 1 >
생성
인덱스 생성
인덱스명 : IX_테이블명_컬럼명 , IDX_테이블명_컬럼명
CREATE [UNIQUE] INDEX 인덱스명 ON 테이블명(컬럼 [ASC | DESC])
-- UNIQUE INDEX : 지정한 컬럼에 중복 데이터가 입력되지 않는 경우에 지정
-- ASC | DESC : 정렬
♠\ 참조 /♠
( 1 )
한번에 컬럼 여러개 지정 가능 (항상 여러 컬럼이 같이 붙어서 조회될 경우)
컬럼 여래개를 한번에 인덱스로 지정
CREATE [UNIQUE] INDEX 인덱스명 ON 테이블명(컬럼1,컬럼2... [ASC | DESC])
-- UNIQUE INDEX : 지정한 컬럼에 중복 데이터가 입력되지 않는 경우에 지정
-- ASC | DESC : 정렬
( 2 )
함수 인덱스 예시
그냥 이런 조회가 많이 나오면 쓰세요 ㅎ..
CREATE INDEX 인덱스명 ON 테이블명(컬럼 * 12);
( 3 )
데이터 사전(DICTIONARY VIEW)에서 확인 가능
SELECT * FROM USER_IND_COLUMNS
< 2 >
삭제
인덱스 삭제문
DROP INDEX 인덱스명 ON 테이블명
'데이터베이스 > ORACLE_DB' 카테고리의 다른 글
Oracle_SQL - 뷰 (VIEW) (0) | 2023.09.14 |
---|---|
Oracle_SQL - System Role (유저생성 , 권한부여 , 동의어) (0) | 2023.09.14 |
Oracle_SQL - 시퀀스(Squence) (0) | 2023.09.14 |
Oracle_SQL - 제약조건 (0) | 2023.09.14 |
Oracle_SQL - 테이블 데이터 추가 , 조회 , 수정 , 삭제 (DML) (0) | 2023.09.13 |