Допустим, у меня есть таблица, содержащая 10000 строк данных о продукте, и я хочу создать XML-ленту, содержащую все данные в таблице.
Очевидно, что я не хочу загружать все продукты в память водин раз.Итак, как я могу предотвратить потребление всей памяти моего сервера?С помощью PDO я могу перебирать все записи следующим образом:
$fp = fopen('feed.xml', 'w');
// write some XML data
// ..
$statement = $db->prepare("SELECT * FROM products");
$statement->execute();
while ($row = $statement->fetch()) {
fputs($fp, '<product>' . $row->name . '</product>');
}
// write some more XML data
// ..
fclose($fp);
Собирается ли этот метод одновременно извлекать все продукты в память, или PDO предоставляет какую-то закулисную функцию разбивки на страницы?Если нет, что я могу сделать?
Должен заметить, что я использую MySQL.