inblog logo
|
devleekangho
    파이썬

    [Python] PyMySQL - fetchall(), fetchone(), fetchmany()

    KangHo Lee's avatar
    KangHo Lee
    Jun 10, 2025
    [Python] PyMySQL - fetchall(), fetchone(), fetchmany()
    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

    devleekangho

    RSS·Powered by Inblog