J'ai une fonctionnalité de génération de rapport. Exporter vers csv ou txt. Pour chaque mois, il y aura 25000 enregistrements par ligne avec 55 colonnes. Pour l'année ce sera plus de 300000 !! j'essaie d'ajouter la limite de mémoire, mais je ne pense pas que c'est bon !! Quoi qu'il en soit maintenant ses 128M.Processus php - l'un après l'autre - Simulation de l'enfilage
Mon attente
Je vais partager la plage de dates sélectionnée par l'utilisateur dans une plage de 25 jours ou 30 je vais courir chercher des données pendant 25 jours, puis écrire le csv. Ensuite, récupérez le 25000 suivant, écrivez cela. comme ça.
Comment puis-je l'atteindre?
pour aller chercher une fonction je utilise $result= fetchRecords();
Pour l'écriture csv, je passe ce tableau $ result pour afficher la page et en boucle et par l'impression par des virgules séparer le Nuevo am.
Donc, dans le contrôleur, il sera $template->records=$result;
Si je le fais dans une boucle
for(){
$result= fetchRecords();
$template->records=$result;
}
Je ne hink cela fonctionnera.
Comment faire? exécutez fetch.write puis récupérez puis écrivez.
Pouvez-vous s'il vous plaît suggérer une meilleure façon de mettre en œuvre cela en PHP en le gardant en mémoire limt?
Si ce sont des données historiques, avez-vous pensé à préparer/mettre en cache des rapports? À moins que les utilisateurs puissent demander des rapports aléatoires, il n'est pas nécessaire de traiter toutes les lignes encore et encore .... – Wrikken
C'est comme les données historiques seulement. En quoi la mise en cache est-elle utile? – zod
Si vous êtes simplement prêt à partir d'une base de données et que vous écrivez dans un fichier CSV, vous pouvez envisager une autre langue. PHP n'est * pas * un excellent langage pour le traitement de texte. – meagar