이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다PostgreSQL : 문서 : 17 : 11.7.와이즈 토토 대한 색인버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

11.7. 인덱스 켜짐 표현

색인 열은 기본 열의 열일 필요는 없습니다. 테이블이지만에서 계산 된 기능 또는 스칼라 표현 일 수 있습니다. 테이블의 하나 이상의 열. 이 기능은 유용합니다 결과에 따라 테이블에 빠르게 액세스 할 수 있습니다. 계산.

예를 들어, 사례에 민감한 비교를하는 일반적인 방법 사용하는 것입니다.Lower기능 :

선택 *에서 test1에서 하위 (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);

의 구문색인 생성명령은 일반적으로 인덱스 주위에 괄호를 작성해야합니다 두 번째 예에서 볼 수 있듯이 표현. 괄호는 할 수 있습니다 토토 결과이 단지 함수 호출 일 때 생략됩니다. 첫 번째 예.

인덱스 토토 결과은 유지하는 데 비교적 비싸다. 파생 된 토토 결과은 각 행에 대해 계산되어야하므로 삽입시 및 업데이트 될 때마다. 그러나 색인 표현은아님이미 색인 검색 중에 다시 계산되었습니다 색인에 저장됩니다. 위의 두 가지 예에서 시스템은 다음을 본다 query as just여기서 indexedColumn = '끊임없는'따라서 검색 속도는 다음과 같습니다. 다른 간단한 인덱스 쿼리. 따라서 표현식에 대한 색인은입니다 검색 속도가 삽입 및 업데이트 속도.