토토 캔 9.3.25 문서화 | ||||
---|---|---|---|---|
PostgreSQL : 문서 : 9.3 : 무지개 토토 인덱스 | 토토 사이트 순위 : 문서 : 9.3 : 인덱스 | 11 장. 인덱스 | PostgreSQL : 문서 : 9.3 : 부분 무지개 토토 |
색인 열은 기본 열의 열일 필요는 없습니다. 테이블이지만 하나에서 계산 된 함수 또는 스칼라 표현 일 수 있습니다. 또는 테이블의 더 많은 열. 이 기능은 빠르게 얻는 데 유용합니다 계산 결과를 기반으로 테이블에 대한 액세스.
예를 들어, 사례에 민감한 비교를하는 일반적인 방법은 다음과 같습니다.
사용하려면Lower
함수 :
선택 *에서 test1에서 where (col1) = 'value';
이 쿼리는 하나가 정의 된 경우 색인을 사용할 수 있습니다. 의 결과Lower (col1)기능 :
test1 (lower (col1));에서 인덱스 테스트 생성 1_lower_col1_idx
우리 가이 색인을 선언해야한다면고유 한, 그것은 행의 생성을 막을 것입니다col1값도 경우에만 다릅니다 줄로col1값은 실제로입니다 동일한. 따라서 표현식에 대한 인덱스를 사용하여 시행 할 수 있습니다 단순한 고유 한 것으로 정의 할 수없는 제약 조건 제약 조건.
다른 예로, 종종 다음과 같은 쿼리를하는 경우
선택 *에서 (First_name || ''|| last_name) = 'John Smith';
그러면 다음과 같은 색인을 만드는 것이 좋습니다.
People에서 index people_names 만들기 ((first_name || ''|| last_name);
의 구문색인 생성명령 일반적으로 인덱스 표현식 주위에 괄호를 작성해야합니다 두 번째 예에서 표시됩니다. 괄호는 때 생략 할 수 있습니다 표현식은 첫 번째와 같이 기능 호출입니다. 예.
인덱스 표현식은 유지하는 데 비교적 비싸다 파생 된 표현식은 각 행에 대해 계산해야합니다. 삽입 및 업데이트 될 때마다. 그러나 색인 표현은아님이미 저장된 인덱스 검색 중에 재 계산 색인에서. 위의 두 가지 예에서 시스템은 쿼리를 다음과 같이합니다. 단지여기서 indexedColumn = 'constant'및 따라서 검색 속도는 다른 간단한 인덱스와 같습니다. 질문. 따라서 표현식의 인덱스는 검색 속도에 유용합니다 삽입 및 업데이트 속도보다 더 중요합니다.