데이터베이스 페이징에서 총 페이지 수를 결정하는 것은 페이지 매김 컨트롤을 렌더링하는 데 중요합니다. 그러나 이 목적을 위해 별도의 개수 및 제한 쿼리를 실행하는 것은 비효율적일 수 있습니다. 이 문서에서는 데이터베이스 제한을 적용하지 않고 결과 수를 얻는 향상된 기술을 살펴봅니다.
PostgreSQL 버전 8.4 이상에서는 창 함수를 도입하여 분할된 하위 집합에 대한 집계 함수 계산을 가능하게 했습니다. 데이터. 이를 통해 단일 쿼리로 총 개수를 결정하고 제한된 결과를 검색할 수 있습니다.
SELECT foo, COUNT(*) OVER() AS full_count FROM bar WHERE <some condition> ORDER BY <some col> LIMIT <pagesize> OFFSET <offset>;
그러나 이 방법은 모든 적격 행을 계산해야 하므로 추가 성능 오버헤드가 발생할 수 있으며 잠재적으로 대규모 성능에 영향을 줄 수 있습니다. 총 행 수에 가까운 테이블 또는 OFFSET 값.
성능이 중요한 경우, OFFSET 및 LIMIT 애플리케이션과 관계없이 영향을 받는 행의 최종 개수를 얻기 위해 대체 접근 방식을 사용할 수 있습니다. Postgres 내부 기록은 일부 클라이언트가 액세스할 수 있는 이 정보를 추적합니다.
위 내용은 LIMIT를 적용하기 전에 PostgreSQL에서 총 결과 수를 효율적으로 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!