다음과 유사한 테이블이 있다고 가정해 보겠습니다:
테이블 테스트1 생성(
    ID 정수,
    컨텐츠 varchar
);
그리고 응용프로그램은 다음 형식의 많은 쿼리를 발행합니다.
ID =인 test1에서 콘텐츠 선택상수;
사전 준비가 없으면 시스템은 전체를 스캔해야 합니다.테스트1테이블을 행별로 정렬하여 일치하는 모든 항목을 찾습니다. 행이 많은 경우테스트1그리고 그러한 쿼리에 의해 반환되는 행은 몇 개(아마도 0 또는 1개)뿐이므로 이는 분명히 비효율적인 방법입니다. 그러나 시스템이 인덱스를 유지하도록 지시받은 경우에는id열을 사용하면 일치하는 행을 찾는 데 더 효율적인 방법을 사용할 수 있습니다. 예를 들어 검색 트리의 몇 가지 수준만 탐색하면 될 수도 있습니다.
비슷한 접근법이 대부분의 논픽션 책에서 사용됩니다. 독자가 자주 찾는 용어와 개념은 책 끝에 있는 알파벳 색인에 수집됩니다. 관심 있는 독자는 관심 있는 자료를 찾기 위해 책 전체를 읽을 필요 없이 비교적 빠르게 색인을 스캔하고 적절한 페이지로 넘길 수 있습니다. 독자가 검색할 만한 항목을 예상하는 것이 작성자의 임무인 것처럼, 어떤 인덱스가 유용할지 예측하는 것은 데이터베이스 프로그래머의 임무입니다.
다음 명령은 다음에 색인을 생성하는 데 사용할 수 있습니다.id열, 논의된 대로:
test1 (id) ON INDEX test1_id_index 생성;
이름test1_id_index자유롭게 선택할 수 있지만 나중에 색인의 용도를 기억할 수 있는 항목을 선택해야 합니다.
색인을 제거하려면 다음을 사용하십시오.드롭 인덱스명령. 색인은 언제든지 테이블에 추가하고 제거할 수 있습니다.
인덱스가 생성되면 추가 개입이 필요하지 않습니다. 시스템은 테이블이 수정될 때 인덱스를 업데이트하고 그렇게 하는 것이 순차적 테이블 스캔보다 더 효율적이라고 생각할 때 쿼리에서 인덱스를 사용합니다. 하지만 다음을 실행해야 할 수도 있습니다.분석쿼리 플래너가 현명한 결정을 내릴 수 있도록 정기적으로 통계를 업데이트하도록 명령합니다. 참조PostgreSQL : 문서 : 9.6 : 스포츠 토토 결과 팁색인이 사용되는지 확인하는 방법과 플래너가 선택할 수 있는 시기와 이유에 대한 정보아님색인을 사용합니다.
색인도 이점을 얻을 수 있습니다.업데이트그리고삭제검색 조건이 포함된 명령입니다. 또한 인덱스는 조인 검색에 사용될 수 있습니다. 따라서 조인 조건의 일부인 열에 정의된 인덱스는 조인을 통한 쿼리 속도를 크게 높일 수도 있습니다.
큰 테이블에 색인을 생성하는 데 시간이 오래 걸릴 수 있습니다. 기본적으로,토토 캔읽기 허용(선택문)은 인덱스 생성과 동시에 테이블에서 발생하지만 다음과 같이 씁니다(삽입, 업데이트, 삭제)은 인덱스 빌드가 완료될 때까지 차단됩니다. 프로덕션 환경에서는 이는 종종 허용되지 않습니다. 인덱스 생성과 동시에 쓰기가 발생하도록 허용할 수 있지만 주의해야 할 몇 가지 주의 사항이 있습니다. 자세한 내용은 다음을 참조하세요.동시에 색인 작성.
색인이 생성된 후 시스템은 이를 테이블과 동기화된 상태로 유지해야 합니다. 이로 인해 데이터 조작 작업에 오버헤드가 추가됩니다. 따라서 쿼리에 거의 사용되지 않거나 전혀 사용되지 않는 인덱스는 제거해야 합니다.