PHpullh
학습 라이브러리/PHP/PDO fetch 제너레이터

PHP · 성능

PDO fetch 제너레이터

DB 결과를 한 번에 모두 가져오지 않고 지연 순회하는 예제입니다.

성능고급pdogeneratordatabase

핵심 설명

DB 결과를 한 번에 모두 가져오지 않고 지연 순회하는 예제입니다.

PHP code

<?php
$pdo = new PDO('sqlite::memory:');
$pdo->exec('CREATE TABLE items (id INTEGER PRIMARY KEY, name TEXT)');
$pdo->exec("INSERT INTO items (name) VALUES ('php'), ('go')");

function rows(PDO $pdo): Generator {
    $stmt = $pdo->query('SELECT name FROM items');
    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
        yield $row;
    }
}

foreach (rows($pdo) as $row) {
    echo $row['name'] . PHP_EOL;
}

학습 팁

성능 예제는 추측보다 측정을 우선해야 하므로 작은 벤치마크를 같이 돌려 보세요.

주의할 점

측정 없이 미세 최적화부터 시작하면 가독성만 잃고 실제 성능 이득은 거의 없을 수 있습니다.

자주 묻는 질문

PDO fetch 제너레이터란 무엇인가요?

DB 결과를 한 번에 모두 가져오지 않고 지연 순회하는 예제입니다.

PDO fetch 제너레이터 학습 시 주의할 점은 무엇인가요?

측정 없이 미세 최적화부터 시작하면 가독성만 잃고 실제 성능 이득은 거의 없을 수 있습니다.