"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > PostgreSQL에 한계를 적용하기 전에 총 행 수를 효율적으로 얻는 방법은 무엇입니까?

PostgreSQL에 한계를 적용하기 전에 총 행 수를 효율적으로 얻는 방법은 무엇입니까?

2025-03-23에 게시되었습니다
검색:759

How to Efficiently Get Total Row Count Before Applying LIMIT in PostgreSQL?

다행히도 PostgreSQL 8.4는보다 효율적인 솔루션 인 창 함수를 도입했습니다. 창 함수를 사용하면 총 결과 수와 한정된 결과를 단일 쿼리로 검색 할 수 있습니다.

foo를 선택하십시오. , count (*) onver ()는 full_count로 () 바에서 여기서 에 의해 주문하십시오 제한 오프셋 ;

이 메소드는 원하는 정보를 제공하지만 한계에 의해 제외 되더라도 모든 행을 처리해야하더라도 모든 행이 처리되어야하더라도 계산 비용이 많이들 수 있습니다. Postgres에서의 작동 순서는 다음과 같습니다.

SELECT foo
     , count(*) OVER() AS full_count
FROM   bar
WHERE  
ORDER  BY 
LIMIT  
OFFSET ;

    주문 결과를 기준으로 한 한계 및 후속에 따라 한계를 기준으로 한 순서 결과를 적용합니다

. 검색

창 함수 외에도 영향을받는 행 카운트를 검색하는 대체 방법이 있습니다. PG_NUM_ROWS
  • 이 메소드는 한계 전부 카운트가 아닌 쿼리에 의해 영향을받는 행의 수를 제공합니다. 테이블] (https://dba.stackexchange.com/questions/128089/optimize-query-with-forportset-on-large-table)
  • [Batch Query에서 영향을받는 행의 수를 계산합니다 PostgreSQL] (https://stackoverflow.com/questions/4644316/calculate-number-of-lows-affed-by-quer-in-postgresql)

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3