목적
- 추가적인 쓰기 작업과 저장 공간을 활용하여 DB 테이블의 검색 속도를 향상시키기 위한 자료구조
- 테이블의 칼럼을 색인화
- 데이터베이스 안의 레코드를 처음부터
풀스캔하지 않고 , B+Tree로 구성된 구조에서 Index 파일 검색으로 속도를 향상시키는 기술
파일 구성
- 테이블 생성 시, 3가지 파일이 생성
- FRM : 테이블 구조 저장 파일
- MYD : 실제 데이터 파일
- MYI : Index 정보 파일(index 사용 시 생성)
- 사용자가 쿼리를 통해 Index를 사용하는 칼럼을 검색하게 되면, 이때 MYI 파일의 내용을 활용
단점
- Index 생성 시, .mdb 파일 크기가 증가
- 한 페이지를 동시에 수정할 수 있는 병행성이 줄어듦
- 인덱스 된 Field에서 Data를 업데이트하거나, Record를 추가 또는 삭제 시 성능이 떨어진다
데이터 변경 작업이 자주 일어나는 경우, Index를 재작성해야 하므로 성능에 영향을 미침
상황 분석
- Index 사용하면 좋은 경우
- Where절에서 자주 사용되는 Column
- 외래키가 사용되는 Column
- Join에 자주 사용되는 Column
- Index 사용을 피해야 하는 경우
- Data 중복도가 높은 Column
- DML이 자주 일어나는 Column
인덱스 생성 예시