쿼리를 저장하는 가상 컬럼
PostgreSQL은 복잡한 계산이나 하위 쿼리를 테이블 스키마에 통합하는 다양한 방법을 제공합니다. 한 가지 접근 방식은 일반 테이블처럼 쿼리할 수 있는 데이터의 가상 표현을 제공하는 뷰를 만드는 것입니다. 그러나 뷰는 데이터베이스에 저장되지 않고 쿼리마다 다시 계산되므로 자주 사용되는 복잡한 쿼리의 경우 효율성이 떨어질 수 있습니다.
또 다른 접근 방식은 저장된 계산 열을 사용하는 것입니다. 이를 통해 다른 열이나 외부 데이터 소스가 포함된 표현식을 기반으로 열 값을 정의할 수 있습니다. 저장된 계산 열은 테이블에 물리적으로 저장되며 기본 데이터가 변경될 때마다 해당 값이 계산되고 업데이트됩니다.
저장된 계산 열을 사용하여 하위 쿼리를 유사 열로 저장하려면 하위 쿼리를 래핑하고 계산 열 정의에서 참조하는 함수를 생성하면 됩니다. 이를 수행하는 방법의 예는 다음과 같습니다.
<code class="language-sql">CREATE FUNCTION col3(tbl_a) RETURNS int8 LANGUAGE SQL STABLE AS $$ SELECT sum(colx) FROM tbl_b b WHERE b.a_id = .a_id $$; ALTER TABLE tbl_a ADD COLUMN col3 INT8 STORED AS col3(tbl_a);</code>
이 방법을 사용하면 일반 열처럼 파생 열을 쿼리할 수 있습니다.
<code class="language-sql">SELECT a_id, col1, col2, col3 FROM tbl_a;</code>
뷰에 비해 저장된 계산 컬럼을 사용하면 컬럼 값이 물리적으로 저장되어 쿼리마다 다시 계산할 필요가 없으므로 자주 사용되는 복잡한 쿼리의 성능이 향상된다는 장점이 있습니다. 또한 저장된 계산 열은 테이블 스키마에 완전히 통합되어 인덱스, 외래 키 제약 조건 및 기타 데이터베이스 작업에 사용할 수 있습니다.
위 내용은 PostgreSQL 저장 계산 열이 복잡한 쿼리의 성능을 어떻게 향상시킬 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!