인덱스는 데이터베이스 성능을 향상시키는 일반적인 방법입니다. an 인덱스는 데이터베이스 서버가 구체적으로 찾고 검색 할 수 있도록합니다. 인덱스없이 할 수있는 것보다 훨씬 빠릅니다. 그러나 색인 또한 데이터베이스 시스템 전체에 오버 헤드를 추가하므로 현명하게 사용해야합니다.
색인의 필요에 대한 고전적인 예는 이것과 비슷한 테이블입니다 :
테이블 생성 테스트 1 ( ID 정수, 내용 varchar );
그리고 응용 프로그램에는 많은 쿼리가 필요합니다. 형태
where id =에서 컨텐츠를 선택하십시오.Constant;
일반적으로 시스템은 전체를 스캔해야합니다test1모든 것을 찾으려면 행으로 테이블 행입니다 일치하는 항목. 에 많은 행이 있다면test1그리고 단지 몇 줄 (아마도 0 또는 하나) 쿼리에 의해 반환 된 다음 이것은 분명히 비효율적입니다. 방법. 시스템에 인덱스를 유지하도록 지시받은 경우 그만큼id열이면 a를 사용할 수 있습니다 일치 행을 찾는보다 효율적인 방법. 예를 들어, 검색 속으로 깊숙이 몇 레벨을 걸어야 할 수도 있습니다. 나무.
비슷한 접근 방식은 대부분의 논픽션 책에서 사용됩니다. 독자들이 자주 찾는 용어와 개념은 책 끝에서 알파벳 지수로 수집되었습니다. 그만큼 관심있는 독자는 인덱스를 비교적 빠르게 스캔 할 수 있습니다 적절한 페이지로 뒤집고 읽을 필요가 없습니다. 흥미로운 위치를 찾는 책 전체. 그것은 작업이기 때문에 독자가 가장 많은 항목을 기대할 수있는 저자의 조회 할 가능성이 높으면 데이터베이스 프로그래머의 작업입니다. 어떤 색인이 유리할 것인지 예측.
다음 명령은 인덱스를 생성하는 데 사용됩니다. 그만큼id논의 된대로 열 :
test1 (id);에서 인덱스 테스트 1_id_index 생성
이름test1_id_index할 수 있습니다 자유롭게 선택했지만 당신은 당신을 가능하게하는 것을 선택해야합니다 나중에 색인이 무엇인지 기억합니다.
색인을 제거하려면를 사용하십시오.드롭 색인명령. 인덱스를 추가하고 제거 할 수 있습니다 언제든지 테이블.
인덱스가 생성되면 더 이상 개입이 없습니다 필수 : 시스템은 인덱스를 사용합니다. 순차적 테이블 스캔보다 더 효율적입니다. 하지만 당신은 할 수 있습니다 를 실행해야합니다.분석명령 정기적으로 통계를 업데이트하여 쿼리 플래너가 교육을받은 결정을 내립니다. 또한 읽기10 장정보에 대한 정보 인덱스 사용 여부와시기와 이유를 찾는 방법 플래너는 선택할 수 있습니다아님색인 사용.
인덱스 혜택업데이트s and삭제검색 조건이 있습니다. 인덱스는 조인 쿼리에도 사용할 수도 있습니다. 따라서 색인 조인 조건의 일부인 열에 정의 조인으로 쿼리 속도를 크게 높이십시오.
인덱스가 생성되면 시스템이 유지해야합니다. 테이블과 동기화되었습니다. 데이터에 오버 헤드가 추가됩니다 조작 작업. 따라서 색인 필수적이거나 전혀 사용되지 않으면 제거해야합니다. 메모 쿼리 또는 데이터 조작 명령이 최대로 사용할 수 있습니다. 테이블 당 인덱스.