Что я пробовал:
- pagination: я пытался использовать предел и смещение в чертах 100 000. Индексируется на user_id и create_at .
- redis: i кэш. /> < /li>
< /ul>
Что я ожидал: < /h3>
Значительное снижение использования памяти и времени генерации. < /p>
< /li>
Избегайте времени и истощения памяти. На самом деле произошло: < /h3>
Все еще сталкивается с высоким использованием памяти (Allowed memory size exhausted) При генерации больших отчетов. - Время выполнения превышает 30 секунд в некоторых случаях
ini_set('memory_limit', '512M');
$offset = 0;
$limit = 10000;
$fp = fopen('php://output', 'w');
while (true) {
$query = "SELECT * FROM reports_table ORDER BY created_at ASC LIMIT $limit OFFSET $offset";
$results = mysqli_query($conn, $query);
if (mysqli_num_rows($results) == 0) break;
while ($row = mysqli_fetch_assoc($results)) {
fputcsv($fp, $row);
}
$offset += $limit;
ob_flush();
flush();
}
Подробнее здесь: https://stackoverflow.com/questions/796 ... ing-withou
Мобильная версия