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

MySQL Discussion :

[MySQL] Performance et regex


Sujet :

MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Inscrit en
    Juillet 2011
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 9
    Par défaut [MySQL] Performance et regex
    Bonjour,

    J'ai besoin de vérifier les formats de toutes les colonnes d'une table. La vérification du format des colonnes se fait via des regex.
    La configuration de la machine est composé d'un processeur 2 coeurs et de 4Go de ram et la table est au format MyISAM.
    Pour une table de 400 colonnes et pour 1 000 000 d'enregistrement cela prend 2h. Il y a t'il un moyen d'augmenter les performances?
    Il n'y a pas d'index car cette table doit être parcouru entièrement.

    Merci,

    Cordialement,

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 601
    Billets dans le blog
    10
    Par défaut
    Une table avec 400 colonnes est une table particulièrement obèse !
    Il y a très probablement un problème de conception pour en arriver là, et en termes d'accès concurrents c'est la cata

    Sinon avez vous exploré la piste des index full text plutôt que des regexp ?

  3. #3
    Membre régulier
    Inscrit en
    Juillet 2011
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 9
    Par défaut
    La table est une table temporaire ne permettant que de:
    - charger un fichier en table
    - effectuer les contrôles
    - insérer les anomalies dans une seconde table

    Je vais faire la comparaison de performance entre les index full text et regexp.
    N'hésitez pas si vous avez d'autres pistes.

    Merci,

    Cordialement,

  4. #4
    Membre régulier
    Inscrit en
    Juillet 2011
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 9
    Par défaut
    Je ne vois pas comment utiliser les index full index et les regex.
    Pouvez-vous éclaircir?

    Merci,

    Cordialement,

  5. #5
    Membre prolifique Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 883
    Par défaut
    Salut à tous.

    Personnellement, rien que le temps de chargement du fichier dans la table, me permettrait de faire les contrôles que vous recherchez.
    J'aurai fait cela en C ! Et le résultat serait bien plus rapide que vos deux heures de traitements. Voir à tout cassé, 30 secondes !

    http://nicolasj.developpez.com/articles/regex/

    @+

  6. #6
    Membre extrêmement actif Avatar de ddoumeche
    Homme Profil pro
    Ingénieur recherche et développement
    Inscrit en
    Octobre 2007
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Singapour

    Informations professionnelles :
    Activité : Ingénieur recherche et développement

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 711
    Par défaut
    Je rejoints l'avis d'Artemus24, mieux vaut faire cette vérification au moment de l'import de données et non pas après,

    que ce soit en C ou dans n'importe quel autre langage.

    Quel est le format de tes regexp ?

  7. #7
    Membre régulier
    Inscrit en
    Juillet 2011
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 9
    Par défaut
    Bonjour,

    A la base les vérifications été faites sous TALEND, mais les traitements été encore plus longs que MySQL.
    J'y avais pensé, même à le faire en shell mais nous avons comme contrainte de n'utiliser que Talend ou que la base MySQL :/

    Merci,

    Cordialement,

  8. #8
    Membre régulier
    Inscrit en
    Juillet 2011
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 9
    Par défaut
    [EDIT]
    Mes regex sont assez simple du genre caractères alpha, que des numeriques, alphanumerique, montant avec signe. Le but étant qu'elles soient administrables en bases.
    Elles sont amenées à évoluer.

  9. #9
    Membre extrêmement actif Avatar de ddoumeche
    Homme Profil pro
    Ingénieur recherche et développement
    Inscrit en
    Octobre 2007
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Singapour

    Informations professionnelles :
    Activité : Ingénieur recherche et développement

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 711
    Par défaut
    Si l'ETL est lent, c'est peut-etre qu'il est mal programmé (par exemple, créer une expression régulière est couteux, mais l'exécuter beaucoup moins).
    A priori, Talend permet de filtrer les lignes lors de l'insert via le composant tFilterRow :

    http://desireddata.blogspot.fr/2015/...ponent-in.html

Discussions similaires

  1. Performance des Regex en .NET
    Par Eric80 dans le forum Framework .NET
    Réponses: 10
    Dernier message: 07/07/2010, 14h55
  2. Relations dans MySQL - Performances, incidences et avis
    Par Invité dans le forum Administration
    Réponses: 4
    Dernier message: 08/06/2010, 13h28
  3. MySQL performance monitoring et tunning
    Par mauroyb0 dans le forum Outils
    Réponses: 2
    Dernier message: 05/09/2007, 20h07
  4. [MySQL] performance des jointures
    Par Bibicmoi dans le forum Langage SQL
    Réponses: 3
    Dernier message: 25/10/2006, 06h44
  5. [Conception][performance] mysql table de 10000 enregistrements / hashmap
    Par debdev dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 09/07/2005, 11h29

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