| 롤 토토 : 문서 : 9.5 : 롤 토토 | |||
|---|---|---|---|
| PostgreSQL : 문서 : 9.5 : 토토 사이트 순위 인덱스 | 배트맨 토토 : 문서 : 9.5 : 인덱스 | 11장. 색인 | PostgreSQL : 문서 : 9.5 : 부분 젠 토토 | 
인덱스 열은 기본 테이블의 열일 필요는 없지만 테이블의 하나 이상의 열에서 계산된 함수 또는 스칼라 와이즈 토토일 수 있습니다. 이 기능은 계산 결과를 기반으로 테이블에 빠르게 액세스하는 데 유용합니다.
예를 들어, 대소문자를 구분하지 않는 비교를 수행하는 일반적인 방법은 다음을 사용하는 것입니다.하위기능:
SELECT * FROM test1 WHERE lower(col1) = '값';
이 쿼리는 색인이 결과에 정의된 경우 색인을 사용할 수 있습니다.하위(col1)기능:
CREATE INDEX 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));
의 구문은색인 생성명령은 일반적으로 두 번째 예에 표시된 것처럼 인덱스 와이즈 토토 주위에 괄호를 작성해야 합니다. 첫 번째 예와 같이 와이즈 토토이 단순한 함수 호출인 경우 괄호를 생략할 수 있습니다.
인덱스 표현식은 삽입 시 및 업데이트될 때마다 파생된 표현식을 각 행에 대해 계산해야 하기 때문에 유지 관리 비용이 상대적으로 비쌉니다. 그러나 인덱스 표현식은 다음과 같습니다.아님이미 색인에 저장되어 있으므로 색인 검색 중에 다시 계산됩니다. 위의 두 예에서 시스템은 쿼리를 다음과 같이 간주합니다.인덱싱된 열 = '상수'따라서 검색 속도는 다른 간단한 색인 쿼리와 동일합니다. 따라서 삽입 및 업데이트 속도보다 검색 속도가 더 중요한 경우 와이즈 토토의 인덱스가 유용합니다.