Bonjour,
Je vous explique mon petit problème.
Alors voila, j'ai une table de membres. De cette table j'extrais environ 20.000 enregistrements.
Pour chacun de ces 20.000 membres, je vais chercher les personnes qui font partie de leur carnet d'adresse.
Ensuite pour chacune de ces personnes du carnet d'adresse (maximum 10 par membre) je fais une boucle qui permet d'extraire les messages postés par chaque personne dans le forum A ou le forum B et une deuxième boucle permettant d'extraire les messages postés par chaque personne dans le forum C ou D.
On pourrait schématiser ainsi:
Sélection des 20.000 membres => (G1)
---> Extraction des personnes qui appartiennent au carnet d'adresse pour chaque membre de (G1) => (G2)
------> Extraction des messages postés sur le forum A ou sur le forum B
pour les membres de (G1) => (G3)
------> Extraction des messages postés sur le forum C ou D pour les membres de (G1) => (G4)
Ensuite on affiche les informations dans un tableau du style
Id membre (G1) | Membres du carnet d'adresse (G2) | Messages (G3) | Messages (G4)
Donc j'ai testé pour 500 membres (G1) la requête mets 269 secondes à s'exécuter et j'en ressort 129 messages (55 de G3 et 74 de G4)
Je voulais savoir comment optimiser tout cela sachant qu'à terme ce ne sera plus 500 mais 20.000 membres minimums.
Je précise que cette requête sera exécutée une fois par jour en CRON.
Merci d'avance.
Partager