INDEX란?
- 테이블에 저장된 데이터를 빠르게 조회하기 위한 데이터베이스 객체
- B-Tree구조를 가짐(B-Tree Index의 경우)
- Index는 논리적/물리적으로 테이블과 독립적임
생성방법
- 자동생성 : PK나 Unique제약 조건을 정의할 경우 Unique Index가 자동으로 생성됨
생성 Syntax
CREATE [UNIQUE] INDEX index_name ON table_name(column1[,column2]);
종류
- Oracle : Bitmap, FunctionBased
- MySQL : FullText, Spatial
- SQL Server : Cluster, Non_Cluster
생성지침
- Where절의 조회조건이나 조인 조건에 자주 사용되는 경우
- 컬럼값이 Unique한 컬럼
- Update가 자주 발생하지 않는 컬럼
- 해당 컬럼을 통한 Select연산의 결과가 전체 데이터 수의 5%이내인 큰 테이블
정보확인
- Oracle : USER_INDEXS : 테이블의 인덱스 정보,
User_IND_COLUMNS : 각 인덱스의 컬럼 정보
- MySQL : Show INDEX From table_name
- SQLServer : SP_HELPINDEX 테이블명.컬럼명
인덱스 Rebuild
- 특정 영역의 데이터 대량 작업후 Rebuild처리함
- Oracle : ALTER INDEX index_name REBUILD TABLESPACE tablespace_name;
- MySQL : ALTER TABLE table_name;
- SQLServer : DBCC INDEXDEFRAG(db_name,table_name,index_name)
DBCC DBREINDEX(table_name,index_name)
인덱스 삭제
- DROP INDEX index_name
- MySQL : DROP INDEX index_name ON table_name
댓글 없음:
댓글 쓰기