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