alors voilà je fais des requetes avec des jointures de table sur des tables regroupant parfois 5 millions d'entrées.
La réponse est de l'ordre de 5 minutes (ce qui est franchement bien)
J'utilise des tables temporaires pour affiner mes requêtes jusqu'à mon but final
J'ai deux questions:
1) Comment pourrais améliorer la rapidité d'execution de mes requêtes en optimisant le code ?
2) afficher une petite progression "étape 1 ok" "étape 2 ok" etc etc ....
voilà mon code :
<?php
mysql_connect("localhost", "root", "root") or die (mysql_error ());
mysql_select_db("listequalif") or die (mysql_error ());
mysql_query("TRUNCATE TABLE perfentre2dates");
mysql_query("INSERT INTO perfentre2dates
SELECT id_perf, id_nage, temps
FROM perf
WHERE date BETWEEN '2010/09/15' AND '2010/12/15'");
stop mysql_query()
echo 'étape 1/6 ok';
mysql_query("TRUNCATE TABLE relationperfiuf");
mysql_query("INSERT INTO relationperfiuf
SELECT iuf, id_nage, temps
FROM perfentre2dates
JOIN prf_comp ON perfentre2dates.id_perf = prf_comp.id_perf
GROUP BY CONCAT (iuf, id_nage, temps)");
echo 'étape 2/6 ok';
mysql_query("TRUNCATE TABLE relationannee");
mysql_query("INSERT INTO relationannee
SELECT relationperfiuf.iuf, anneenaiss, id_nage, temps
FROM relationperfiuf
JOIN licences ON relationperfiuf.iuf = licences.iuf");
echo 'étape 3/6 ok';
mysql_query("TRUNCATE TABLE resultidentcate");
mysql_query("INSERT INTO resultidentcate
SELECT iuf, id_cate, id_nage, temps
FROM relationannee
JOIN identcate
ON relationannee.annee = identcate.annee");
echo 'étape 4/6 ok';
mysql_query("TRUNCATE TABLE resultatsbrut");
mysql_query("INSERT INTO resultatsbrut
SELECT iuf, resultidentcate.id_nage, temps, tempsgrille
FROM resultidentcate
JOIN nikogrille
ON resultidentcate.id_nage = nikogrille.id_nage AND resultidentcate.id_cate = nikogrille.id_cate
WHERE temps <= tempsgrille");
echo 'étape 5/6 ok';
mysql_query("TRUNCATE TABLE resultatsniko");
mysql_query("INSERT INTO resultatsniko
SELECT resultatsbrut.iuf, nom, prenom, numclub, sexe
FROM resultatsbrut
JOIN licences
ON resultatsbrut.iuf = licences.iuf
GROUP BY CONCAT (resultatsbrut.iuf, nom, prenom)");
echo 'TERMINE';
?>
MERCI A TOUS