13-12-2011, 08:46 PM
je ne suis pas rentré plus que ca dans le code pour identifier d'éventuelles boucles infinies ou autre mais déj ce qui me choque c'est le nombre de requêtes que tu fais dans les boucles
le mieux à mon sens est déjà de découper le code :
1) construire une requête qui ramène tous les enregistrements dont tu as besoin de la table map (avec un where, histoire de n'amener que les enregistrements dont tu as besoin)
là tu fais des requêtes unitaires donc au moins 23 fois trop
de plus tu fais une requete pour ramener un "nombrecarré" et après tu fais une requete sur la même table pour ramener les infos du nombre carrés, ça fait au moins 2 fois trop
donc déjà 46 fois trop de requete select
2) boucler pour construire les données que tu souhaites (pas essayer de comprendre ta boucle avec $x mais c'est le résultat de cette boucle)
3) construire ta phase d'insertion avec les prepare qui vont bien
1 requete prepare
boucle pour tous les insert (via execute),
1 autre requete prepare
boucle pour tous les insert (via execute),
etc...
l'intérêt de la préparation c'est de faire plusieurs fois la même requete de suite (avec des valeurs différentes) là tu changes à chaque fois
le mieux à mon sens est déjà de découper le code :
1) construire une requête qui ramène tous les enregistrements dont tu as besoin de la table map (avec un where, histoire de n'amener que les enregistrements dont tu as besoin)
là tu fais des requêtes unitaires donc au moins 23 fois trop
de plus tu fais une requete pour ramener un "nombrecarré" et après tu fais une requete sur la même table pour ramener les infos du nombre carrés, ça fait au moins 2 fois trop
donc déjà 46 fois trop de requete select
2) boucler pour construire les données que tu souhaites (pas essayer de comprendre ta boucle avec $x mais c'est le résultat de cette boucle)
3) construire ta phase d'insertion avec les prepare qui vont bien
1 requete prepare
boucle pour tous les insert (via execute),
1 autre requete prepare
boucle pour tous les insert (via execute),
etc...
l'intérêt de la préparation c'est de faire plusieurs fois la même requete de suite (avec des valeurs différentes) là tu changes à chaque fois