- 인덱스(index)는 데이터베이스의 테이블에 대한 검색 속도를 향상시켜주는
자료구조
- 테이블의 특정 컬럼(Column)에 인덱스를 생성하면 해당 컬럼의 데이터를 정렬한 후 별도의 메모리 공간에 데이터의 물리적 주소와 함께 저장된다.
- 컬럼의 값과 물리적 주소를 (key, value) 쌍으로 저장한다.
-
장점
- 테이블을 검색하는 속도와 성능이 향상
- 기존에 where문으로 특정 조건의 데이터를 찾기 위해서 테이블의 전체를 조건과 비교해야 하는 풀 테이블 스캔 작업이 필요
- 인덱스를 이용하면 데이터들이 정렬되어 있기 때문에 조건에 맞는 데이터를 빠르게 찾을 수 있음
- ORDER BY 문이나 min/max 같은 경우도 이미 정렬되어 있기 때문에 빠르게 수행할 수 있음
-
단점
- 인덱스를 관리하기 위한 추가 작업이 필요
- 추가 저장 공간 필요
- 잘못 사용하는 경우 오히려 검색 성능 저하
- 해시테이블은 key와 value를 한 쌍으로 데이터를 저장하는 자료구조