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

11.7. 토토 꽁 머니에 대한 색인

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

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

선택 *에서 test1에서 where (col1) = 'value';

이 쿼리는의 결과에 정의 된 경우 색인을 사용할 수 있습니다.Lower (col1)기능 :

test1 (lower (col1));에서 인덱스 테스트 생성 1_lower_col1_idx 생성

토토 꽁 머니 인덱스는 또한 고유 인덱스의 범위를 제어 할 수 있습니다. 예를 들어,이 고유 인덱스는 중복 정수 값이 A에 저장되는 것을 방지합니다더블 정밀도-typed 열 :

테스트에서 고유 한 색인 생성 1_uniq_int

우리 가이 색인을 선언해야한다면고유 한col1값은 경우에만 다릅니다.col1값은 실제로 동일합니다. 따라서 표현식에 대한 색인은 단순한 고유 한 제약으로 정의 할 수없는 제약 조건을 시행하는 데 사용될 수 있습니다.

다른 예로, 종종 다음과 같은 쿼리를하는 경우

선택 *에서 (First_name || ''|| last_name) = 'John Smith';

그러면 다음과 같은 색인을 만들 가치가있을 수 있습니다.

People에서 인덱스 People_Names 만들기 ((First_Name || ''|| last_name);

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

인덱스 토토 꽁 머니식은 삽입시 및 업데이트 될 때마다 각 행에 대해 파생 된 토토 꽁 머니식을 계산해야하기 때문에 유지 비용이 비교적 비쌉니다. 그러나 인덱스 토토 꽁 머니식은입니다.not인덱스 검색 중에 이미 인덱스에 저장되어 있기 때문에 다시 계산했습니다. 위의 두 가지 예에서 시스템은 쿼리가 just로 본다여기서 indexedColumn = 'constant'따라서 검색 속도는 다른 간단한 인덱스 쿼리와 동일합니다. 따라서 토토 꽁 머니식의 인덱스는 검색 속도가 삽입 및 업데이트 속도보다 중요 할 때 유용합니다.