민환
- 인덱스는 데이터베이스의 검색 성능의 속도를 높여주기 위 만 만들어진 자료 구조입니다.
- 만약 인덱스가 없는 컬럼으로 where절이나 order by 절 같은 검색 쿼리를 수행하게 되면 풀스캔이 일어나게 되는 데 데이터의 양이 많을 수록 그 속도는 매우 낮아지게 됩니다.
- 이때 인덱스를 만들어주게 된다면 데이터를 오름차순으로 정렬하기 때문에 해당 조건에 맞는 데이터들을 빠르게 찾아낼 수 있습니다. 이를 인덱스 스캔이라고 합니다.
- 하지만 INSERT, DELETE, UPDATE시에 추가적인 작업이 진행되어야 하는 점과 저장 공간이 추가로 필요하기 때문에 무조건 속도 향상을 위해 인덱스를 생성하는 것은 좋지 않습니다.
- 그렇기 때문에 JOIN이나 WHERE, ORDER BY가 자주 일어나고 INSERT, DELETE, UPDATE가 자주 발생하지 않으며 중복이 낮은 컬럼에만 인덱스를 사용해야 합니다.
- 인덱스는 주로 B-TREE 자료구조를 사용하게 됩니다.