728x90
인덱스 (Index)
- 테이블에서 자주 사용하는 속성을 별도로 생성
- 테이블의 검색 동작 속도를 향상시키기 위하여 사용
- 테이블에 대한 킷값을 가지고 있는 사본 테이블
- 사용자들은 인텍스를 볼 수 없다.
- MySQL에서는 기본키에 대하여 인덱스가 자동 생성된다.
- 대부분의 MySQL 인덱스 (기본키, UNIQUE, INDEX와 FULLTEXT)는 B-tree에 저장된다.
- B-tree는 Binary Tree와 다르다.
- B-tree : 여러 개의 자식 노드를 가질 수 있다.
- Binary Tree : 2개의 자식 노드를 가진다.
- 장점
- WHERE 절이나 ORDER BY 처리에서 빠른 처리 속도
- 단점
- 인덱스가 설정된 테이블을 수정할 때 처리 속도가 떨어짐
- 인덱스 생성시 고려 사항
- WHERE절에서 자주 사용되는 속성을 선택한다.
- 조인에 자주 사용되는 속성을 선택한다.
- 인덱스가 많으면 속도가 느려진다.
인덱스 생성
- 기본 형식
CREATE INDEX 인덱스명
ON 테이블명( 속성명, ... );
ALTER TABLE 테이블명 ADD INDEX 인덱스명 [ 인덱스타입 ]( 인덱스속성명, ... );
- 테이블 생성 코드 ( 인덱스 생성 전 )
- CREATE INDEX를 사용하여 Customer 테이블의 name 속성에 대하여 인덱스(nameidx)를 생성하시오.
CREATE INDEX nameidx ON customer( name );
- 테이블 생성 코드 ( 인덱스 생성 후 )
인덱스 조회
- 기본 형식
SHOW INDEX FROM 테이블명;
인덱스 삭제
- 기본 형식
DROP INDEX 인덱스명 ON 테이블명 ;
ALTER TABLE 테이블명 DROP INDEX 인덱스명 ;
728x90
'프로그래밍 > Database' 카테고리의 다른 글
MySQL 오른쪽 조인 (Right Join) (0) | 2020.05.04 |
---|---|
MySQL 내부 조인 (Inner Join) (0) | 2020.05.03 |
MySQL GROUP BY 함수 (0) | 2020.05.02 |
MySQL 타입 변환 함수 (Type Conversion Functions) (0) | 2020.04.29 |
MySQL 문자열 함수 (String Fuctions) - (2) (0) | 2020.04.29 |