03 인덱스 : 빠른 검색을 위한 데이터 주소록
SQL FOR EVERYONE
우리가 지금까지 실습한 인사(employees) 데이터베이스는 데이터가 매우 적지만, 규모 있는 기업에서 운영하는 데이터베이스의 데이터는 용량이 수천만 건에서 수 테라바이트(TB)인 경우가 많습니다. 이런 경우에는 SELECT 문의 조회 논리가 효율적이지 않으면 결과가 바로 출력되지 않을 수도 있습니다(엄밀하게 말하면 출력되지 않는 것이 아니라 결과가 매우 느리게 반환되는 것으로, 이것은 실제 운영하는 데이터베이스 시스템에 악영향을 줄 수 있습니다).
인덱스(index)는 데이터를 찾기 위한 ‘색인’으로 데이터의 주소록이라고 부를 수 있습니다. 데이터를 빠르고 효율적으로 조회하기 위해 사용하는 것으로, 데이터베이스 시스템에 의해 자동으로 생성되기도 하고 사용자가 수동으로 생성하기도 합니다.
인덱스의 특징은 다음과 같습니다.
■ 인덱스는 테이블의 데이터 값에 빠르게 액세스하도록 하는 데이터베이스 객체입니다.
■ 데이터를 빠르게 찾을 수 있기 때문에 디스크 액세스 횟수를 줄일 수 있습니다.
■ 데이터베이스 시스템이 인덱스를 자동으로 사용하고 유지 보수하므로 사용자는 인덱스를 직접 조작할 필요가 없습니다(수동으로도 생성 가능).
■ 언제든지 생성하거나 삭제할 수 있으며 테이블이나 다른 인덱스에 영향을 주지 않습니다.