인덱스는 데이터베이스 테이블에 대한 검색 성능의 속도를 높여주는 자료 구조입니다. 특정 컬럼에 인덱스를 생성하면, 해당 컬럼의 데이터들을 정렬하여 별도의 메모리 공간에 데이터의 물리적 주소와 함께 저장합니다.
인덱스가 생성 되었다면 생성한 인덱스의 컬럼을 Where 조건으로 쿼리하면 옵티마이저에서 판단하여 생성된 인덱스를 타게 됩니다. 그러면 인덱스에 저장되어 있는 데이터의 물리적 주소로 가서 데이터를 가져오게 됩니다
즉, 인덱스는 검색용으로 별도의 물리적 공간을 가지고 있습니다.
빠른 검색: 인덱스를 사용하면 데이터베이스 검색 속도가 빨라집니다. 인덱스는 데이터를 더 빠르게 찾기 위해 특별한 데이터 구조를 사용하며, 이 구조는 테이블의 모든 데이터를 검색하지 않아도 된다는 것을 의미합니다. 대부분의 검색은 인덱스에서 수행되므로 데이터베이스의 검색 시간이 크게 줄어듭니다.
정렬: 인덱스를 사용하면 데이터를 정렬할 필요가 없습니다. 데이터는 인덱스에서 이미 정렬되어 있으므로 검색 속도가 향상됩니다.
인덱스 생성 비용: 인덱스를 생성하면 디스크 공간이 추가로 필요하고, 인덱스가 갱신될 때마다 인덱스를 갱신해야 합니다. 이는 데이터베이스의 쓰기 성능을 떨어뜨릴 수 있습니다.
인덱스 관리 비용: 인덱스는 데이터베이스의 일부분이므로 인덱스를 유지 보수해야 합니다. 인덱스를 갱신하거나 삭제해야 할 때마다 추가 작업이 필요합니다. 이는 데이터베이스 관리 비용을 높일 수 있습니다.