9 백만 행의 쿼리 결과 집합이 있습니다.Python/PyGreSQL을 사용하면 큰 결과 집합을 효율적으로 처리 할 수 있습니까?
나는 각 행에 대해 어떤 처리를 할 필요가, 그리고 코드는 현재이 작업을 수행합니다
query = conn.query(sql)
results = query.getresult()
for row in results:
# blah
잘 모르겠어요,하지만 난 getresult()
전체 결과 집합을 잡아 당기는 것을 상상한다. 그럴까요? 필자는 필요에 따라 결과 집합을 청크로 끌어 올 수있는 방법이 있다고 상상하지만, 바로 pg
모듈 문서에서 이와 같은 것을 보지 못했습니다.
대신 pgdb
모듈을 사용하거나 다른 방법을 사용할 수 있습니까?
내 관심사는 응용 프로그램 컴퓨터의 메모리에 대한 것입니다. 도움을 청하면 수백만 개의 행을 한꺼번에 메모리에로드하지 않을 것입니다.
걱정할 가치가 있습니까?
pygresql docs에 따르면 getresult는 연관된 쿼리의 모든 데이터를 보유하는 다양한 목록과 함께 pyquery 개체를 반환합니다. 파이썬의 대체 db 액세스 라이브러리 중 하나에 쿼리 결과를위한 반복자가 포함되어 있는지 확인해야합니다. –