IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

durée d'un left join vs une comparaison en tableau.


Sujet :

PHP & Base de données

  1. #1
    Inactif  

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    3 064
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 064
    Points : 4 605
    Points
    4 605
    Par défaut durée d'un left join vs une comparaison en tableau.
    Bonsoir,

    J'ai une table de 770 000 lignes avec un code de classement + un champ texte.

    Après analyse de la table des encodage sont mal passé sur des valeurs résultats des lettres avec accents sont a ressaisir.

    Pour ce faire j'ai fait un distinct sur les valeurs textes . En valeur distinct j'ai 230 000 lignes de valeurs de type texte. Pour ce faire j'ai fait un tableau avec chaine de départ et chaine corrigé.

    Je souhaite faire un left join pour avoir au final mon code classement ma chaîne qui bug et la corrigé.

    Ne disposant pas d'access j'ai lancé un batch en mysql pour mon left join. Problème au bout de 30 minutes mon pc mouline encore.

    Pour info je ne peux pas avoir accès a la bdd en elle même. Je dois me contenter d'une bout de base donc de cette table en la corrigeant.

    Merci de l'aiguiller pour m'éviter de laisser tourner mon coucou 8h a plein régime

    Je proscrit Excel qui plante a chaque fois avec un recherchev. Je pensais a un comparaison en mode tableau et pointeur via php ?

  2. #2
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    Je comprends pas, les joins c'est pour faire des jointures, or là tu n'as qu'une seule table non ?

    Sinon, il faudrait mieux traiter tes lignes 1000 par mille par exemple, ça devrait aller assez vite.
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Le tout est assez incompréhensible.
    En valeur distinct j'ai 230 000 lignes de valeurs de type texte.
    Tu veux dire que dans ta table tu as des lignes ayant le même texte ?
    Pour ce faire j'ai fait un tableau avec chaine de départ et chaine corrigé.
    un tableau de quelle nature ? une table mysql ?
    j'ai lancé un batch en mysql pour mon left join.
    C'est quoi un batch qui fait une jointure ?
    Pour info je ne peux pas avoir accès a la bdd en elle même. Je dois me contenter d'une bout de base donc de cette table en la corrigeant.
    C'est quoi un bout de base ? Comment fais-tu la moindre action sur cette table si tu n'as aucun accès ?
    Je pensais a un comparaison en mode tableau et pointeur via php ?
    ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    3 064
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 064
    Points : 4 605
    Points
    4 605
    Par défaut
    Bonjour,

    Je reprend:

    1) j'ai une table de 770 000 avec 2 colonnes 1 numérique avec un code classement. Une colonne type texte avec mes valeurs textuelles.

    2) j'ai fait un distinct sur mes valeurs textuelles. J'en ai 230 000 en valeur distinct. Ici je ne parle pas du code classement.

    J'ai créé. Une table deux avec la valeur distinct texte. En colonne 1 la chaine origine qui contient des erreurs. En colonne 2 la colonne avec les valeurs texte ressaisies et corrigé qu'en nécessaire .

    Aucune ligne n'est en double , exemple : 1;azerty est différent de 3050;azerty. C'est deux relevés distinct via le code classement.

    3) un batch qui fait une jointure c'est un .bat qui exécute un qbquery mysql. En somme mon bat exécute ma requête sql.

    4) un bout de bdd est une table d'une bdd.

    5) c'est pour analyser des mots saisis. Mais il arrive qu'un caractère exotique ne passe pas. Je pense au i tréma, le n avec un tidle , les c cédilles... Ceux ci peuvent être mal encodés de plusieurs façons pour un seul et même caractère

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Un jointure sur une colonne de texte c'est évidemment une charge monstrueuse.
    Si tu as pu corriger les textes dans une table a côté pourquoi tu ne peux corriger la table source directement (ou faire une table corrigée si tu ne peux pas modifier la vraie table).
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Inactif  

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    3 064
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 064
    Points : 4 605
    Points
    4 605
    Par défaut
    Bonjour,

    J'ai fait utilisé le left join via access. Quelqu'un me la testé sur Access et nickel c'est passé .

  7. #7
    Inactif  

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    3 064
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 064
    Points : 4 605
    Points
    4 605
    Par défaut
    Bonsoir

    Je remonte le topic,

    J'ai une base avec 2 millions de lignes environs . Je doit affecter pour environs à 300 000 lignes une valeurs uniques de traitement . C'est pour rapprocher des status de traitement automatique.

    Faire un left join , inner join ou right join en mysql + batch est ce que cela prendra du temps en utilisant comme clef un numérique ?

    En somme

    >> chargement données dans table 1
    >> chargement données dans table 2

    >> left join entre mes tables 1 et 2

    Merci de m'aiguiller

Discussions similaires

  1. LEFT JOIN sur une même table
    Par grinder59 dans le forum Requêtes
    Réponses: 2
    Dernier message: 13/01/2012, 15h30
  2. utilisation LEFt JOIN ds une trigger DELETE
    Par moukit233 dans le forum Requêtes
    Réponses: 1
    Dernier message: 15/04/2010, 18h48
  3. Réponses: 4
    Dernier message: 06/11/2009, 12h35
  4. 2 LEFT JOIN sur une même table
    Par dakan dans le forum Langage SQL
    Réponses: 2
    Dernier message: 02/10/2007, 13h51
  5. Combiner plusieurs LEFT JOIN dans une requète
    Par feanor12 dans le forum Access
    Réponses: 3
    Dernier message: 24/08/2006, 13h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo