본문 바로가기
Python

cursor.iterate() (파이썬 메서드)

by yororing 2024. 9. 4.

00 개요

  • Python에서 DB와 작업 시, cursor 객체는 SQL 쿼리를 실행하고 데이터를 가져오는 중요한 도구임
  • iterate() 메서드는 이러한 cursor 객체에서 사용되는 함수 중 하나로, DB 쿼리 결과를 한 행씩 순차적으로 가져올 수 있도록 도와줌

01 cursor.iterate()란

1. 정의

  • cursor.iterate()는 쿼리 결과를 한 번에 모두 가져오는 대신, 한 행씩 순차적으로 처리할 수 있게 해주는 메서드
  • 일반적으로 fetchall()이나 fetchmany()와 같은 메서드는 쿼리 결과를 한꺼번에 메모리로 가져오지만, iterate()는 메모리 사용을 최소화하면서도 필요한 데이터만 점진적으로 처리할 수 있게 해줌

2. 예시

  • cursor.iterate() 처음 실행 시 반환값은 ['IC_cluster']가 됨, cursor.iterate() 두번째 실행 시 반환값은 []가 됨
  • 이유:
    • 첫 번째 실행: iterate() 메서드를 통해 쿼리 결과를 순차적으로 가져옴. 첫 번째 호출 시, 결과가 잘 반환되어 리스트에 값이 담감.
    • 두 번째 실행: iterate()는 이미 데이터를 모두 순차적으로 처리했기 때문에, 두 번째 호출 시에는 남은 데이터가 없고, 따라서 빈 리스트가 반환되는 것

3. 요약

  • cursor.iterate() 메서드는 메모리 효율적으로 데이터를 처리할 때 유용하지만, 쿼리 결과를 한 번 사용하면 다시 사용할 수 없다는 점을 유의해야 함
  • 이러한 특성 때문에, 쿼리 결과를 여러 번 사용할 경우, 처음부터 데이터를 모두 메모리에 저장하거나 쿼리를 반복 실행하는 방법을 고려해야 함
  • 이러한 특성들을 이해하고 적절히 활용하면, DB 작업 시 더 나은 성능을 얻을 수 있음!