대규모 결과 세트를 검색하면 특히 모든 결과를 가져와야 하는 경우 메모리 리소스에 부담을 줄 수 있습니다. 시작하는 동안 한 번에. 기본 커서와 함께 fetchall()을 사용하는 것은 간단한 해결책처럼 보일 수 있지만 상당한 양의 메모리를 소비합니다. 이것이 MySQLDB의 SSCursor(스트리밍 결과 집합 커서)가 작동하는 곳입니다.
SSCursor는 메모리 사용량을 최소화하면서 스트리밍 방식으로 결과를 검색하는 방법을 제공합니다. 행을 반복하거나 작은 배치로 반복할 수 있습니다.
<code class="python">import MySQLdb.cursors connection = MySQLdb.connect( host="thehost", user="theuser", passwd="thepassword", db="thedb", cursorclass=MySQLdb.cursors.SSCursor ) cursor = connection.cursor() cursor.execute(query) for row in cursor: # Process or store the current row</code>
이전에 전체 결과 집합을 메모리에 로드하는 fetchall()과 달리 이를 반환하면 SSCursors는 행의 증분 가져오기를 활성화합니다. 이렇게 하면 메모리 소비가 크게 줄어들고 시스템 리소스가 확보됩니다.
SSCursor의 결과를 행 단위로 또는 소규모 배치로 반복하는 것이 메모리 사용량 측면에서 더 효율적입니다. 가져오기()합니다. 특정 시간에 처리되는 행에 대해서만 메모리가 할당됩니다.
위 내용은 MySQLDB의 SSCursor는 어떻게 대규모 결과 세트에 대한 메모리 관리를 향상시킬 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!