Bonsoir,
J'explique mon problème, j'en ai 6 fichiers csv téléchargés chaque jour (de très grande taille --> 2,4 Go)
je les charge dans 6 tables temporaires( qui ne contiennent aucune clé car je les utilise comme tampon), puis j'en ai 4 tables de la structure de ma base de données, je les remplisse sélectivement à partir des 6 tables temporaires.
Par exemple j'en ai une table "tv_ref_iad" que je doit remplir à partir de la table temporaire 'referentiel_hispeed', puis je doit lui faire un update de certains champs à partir d'autre table temporaires en testant selon un champ commun.
Au début j'ai pensé à des requette séparées :
Cette requette permet une première insertion dans ma table tv_ref_iad(contient une clé primaire ndiFT) à partir de la table temporaire referentiel_hispeed.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 insert into `tv_ref_iad` (`ndiFT`,`ndi9t`,`option`,`ipIAD`,`profildslDslam`, `attenuationTheorique`,`aliasDslam`,`typeDslam`,`versionDslam`,`typeCarteDslam`,`technoCarte`,`typeInfraData`,`bas`,`codePostal`,`codeInsee`,`assiaLastDate`,`assiaCode`,`assiaCategorie`,`dateRealisation`,`dateFichierHispeed`) (SELECT `ndi`,`ndi9t`,`option`, `adresseIpIad`,`profildsl`,`attenuation`,`aliasDslam`,`typeDslam`,`versionDslam`,`typeCarteDslam`,`technoCarte`,`typeInfraData`,`bas`,`codePostal`,`codeInsee`,`assiaLastDate`,`assiaCode`,`assiaCategorie`,`dateRealisation`,`dateFichier` FROM `referentiel_hispeed` WHERE `offre` LIKE '%TV%' OR `codeOffre` LIKE '%TV%')
Puis je doit faire un update des autre tables, par exemple
ici je rajoute le champ iadModel dans ma table tv_ref_iad à partir de ma table indicateurs_opt1.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 insert into `tv_ref_iad` (`ndiFT`,`iadModel`) (SELECT R.`ndi`,I.`iadModel` FROM `referentiel_hispeed` R, `indicateurs_opt1` I WHERE (`offre` LIKE '%TV%' OR `codeOffre` LIKE '%TV%') AND R.ndi=I.ndiFT)
Et là le temps de traitement est énorme.
Aussi il ne faut pas oublier que je veux faire des update à partir des fichiers csv chaque jour...par exemple pour une nouvelle version d'un fichier csv il faut appliquer un test aussi qui supprime de ma table tv_ref_iad les ndi qui ne se trouve pas dans le nouveau fichier csv en faisant une comparaison du champ datefichichier de ma table tv_ref_iad et la table temporaire 'referentiel_hispeed' qui est remplie chaque jour à partir d'un fichier csv.
L'environnement c'est WAMP (Mysql+php) dernière version sous Windows xp.
Donc je demande comment optimiser mes requettes, et pourquoi pas remplir ma table tv_ref_iad par une seule requette à partir des tables temporaires.
Merci pour vos réponses.
Partager