이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : 11.7.와이즈 토토 대한 색인버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

11.7. 인덱스 토토 결과

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

예를 들어, 대소문자를 구분하지 않는 비교를 수행하는 일반적인 방법 를 사용하는 것입니다.하위기능:

SELECT * FROM test1 WHERE lower(col1) = '값';

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

인덱스 생성 test1_lower_col1_idx ON test1 (lower(col1));

우리가 이 색인을 선언한다면고유, 다음과 같은 행이 생성되지 않도록 방지합니다.col1값은 대소문자만 다릅니다. 행으로col1값은 실제로 동일합니다. 따라서 표현식의 인덱스를 사용하여 강제할 수 있습니다. 단순 고유로 정의할 수 없는 제약 조건 제약.

또 다른 예로, 다음과 같은 쿼리를 자주 수행하는 경우:

SELECT * FROM people WHERE (first_name || ' ' || last_name) = 'John Smith';

그러면 다음과 같은 색인을 생성하는 것이 가치가 있을 것입니다:

사람에 대한 INDEX people_names 생성((first_name || ' ' || last_name));

의 구문은색인 생성명령은 일반적으로 색인 주위에 괄호를 써야 합니다. 두 번째 예에 표시된 것처럼 표현식을 사용합니다. 괄호는 다음과 같습니다. 표현식이 단지 함수 호출인 경우 생략됩니다. 첫 번째 예입니다.

색인 토토 결과은 유지 관리 비용이 비교적 많이 듭니다. 파생된 토토 결과은 각 행에 대해 계산되어야 하기 때문입니다. 삽입 시 및 업데이트될 때마다. 그러나 지수는 표현은아님이미 검색되었으므로 색인 검색 중에 다시 계산되었습니다. 인덱스에 저장됩니다. 위의 두 예에서 시스템은 다음과 같이 쿼리하세요.색인된 열이 있는 곳 = '일정'따라서 검색 속도는 다음과 같습니다. 기타 간단한 인덱스 쿼리. 따라서 표현식의 인덱스는 다음과 같습니다. 삽입보다 검색 속도가 더 중요할 때 유용하며, 업데이트 속도.