[EDIT]Oups, je crois que mon message trouverait plus sa place dans le forum SGBD de Php. Désolé. Comment je fais pour déplacer la discution ?[/EDIT]
Bonjour,
J'ai une requête chargée de calculer des alertes à envoyer aux internautes.
La requête est bien optimisée - je lui ai rajouté un spoiler, un volant sport et des jantes alliage - si bien qu'elle me renvoie TOUS les résultats en une fois.
L'ennui maintenant, c'est que quand le nombre de résultats retournés est trop important (plusieurs centaines de milliers à plusieurs millions d'enregistrements), le serveur PHP ne suit plus : le script est lancé comme processus Php (lancement par Cron) et la quantité de données chargées en mémoire est telle que le serveur ralentie et devient inaccessible.
Et pourtant, c'est du dédié qui ne fait tourner que le Php (Double coeur bixéon gorgé de ram, avec peinture métallisée)
Voici comment Php récupère ma requête, la traitement est très classique :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 $resultat = $mysqli->query($ma_requete_sql); if($resultat && $resultat->num_rows) { while($alerte = $resultat->fetch_object()) { //Traitement et envoi du mail } }
Je ne vais pas entrer dans le détail, mais il est difficile de découpe ma requête en requêtes plus petites.
Partager