fetchall()
은 DB에서 조회(SELECT)한 모든 결과 행(row)을 한 번에 가져오는 함수입니다. 주로 다음과 같은 이유로 사용됩니다:✅ 1. 모든 결과를 리스트 형태로 받고 싶을 때
cursor.execute("SELECT * FROM user")
result = cursor.fetchall()
result
는[(row1), (row2), (row3), ...]
형태의 튜플 리스트가 됩니다.
- 반복문으로 쉽게 처리 가능:
for row in result:
print(row)
✅ 2. 조회 결과를 반복해서 처리할 수 있게 하기 위해
fetchall()
없이 바로cursor
를 쓰면 한 번만 읽히고 다시 접근 불가합니다.
fetchall()
로 리스트로 받아두면 여러 번 재사용 가능.
✅ 3. 메모리에 다 넣고 빠르게 접근하기 위해
- 작은 데이터는
fetchall()
로 전부 가져오고, 파이썬에서 가공하거나 필터링하는 것이 빠릅니다.
- 예: 유저 리스트, 상품 목록, 전체 게시글 등
❗주의: 데이터가 많을 땐 fetchone()
이나 fetchmany(n)
추천
fetchall()
은 결과를 한꺼번에 메모리에 로드하므로, 수천, 수만 건 이상이면 메모리 폭발 가능성이 있습니다.
🧠 요약 표:
메서드 | 기능 | 특징 |
fetchall() | 모든 결과 가져옴 | 리스트로 전체 처리에 적합 |
fetchone() | 한 줄만 가져옴 | 반복문으로 한 줄씩 처리 가능 |
fetchmany(n) | n개씩 묶어 가져옴 | 메모리 절약 + 반복 처리에 적합 |
Share article