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

Requêtes MySQL Discussion :

Egalité de chaine de caractère et index ?


Sujet :

Requêtes MySQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 334
    Points : 123
    Points
    123
    Par défaut Egalité de chaine de caractère et index ?
    Bonjour,

    Je suis sous MySQL 5.0 et j'ai 2 tables contenant chacune une séquence de caractère pouvant être assez longue.

    target_sequence
    idtarget_sequence INT PK,
    sequence TEXT,
    INDEX tsequence_indx (sequence(600))

    targettmp
    seq_ TEXT,
    INDEX seq_indx (seq(600))

    Ces 2 tables ne sont pas reliées par clés étrangères (targettmp est une table temporaire), j'ai créé des index de 600 caractères (la totalité de la longueur n'étant pas indexable à cause d'une limitation interne de MySQL), mais la taille des séquence peut être très longue (12 000 caractères dans le pire des cas).

    Je voudrais récupérer idtarget_sequence en croisant la targettmp sur l'égalité de séquences.

    J'ai donc tenté un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    explain select idtarget_sequence FROM targettmp JOIN target_sequence ON sequence = seq_;
    Voici le résultat de l'EXPLAIN :



    Autant je comprends que la totalité de la targettmp soit lue, autant je pensais que l'index de séquence de target_sequence allait servir.

    Sauriez-vous si un index de 600, plus petit donc que certaines séquences puisse faire en sorte que l'index ne soit pas utilisé, ou auriez-vous une idée là-dessus ?

    Je pensais pouvoir utiliser un FULLTEXT, mais ce n'est valable que pour les tables MYISAM qui ne gèrent pas les clés étrangères d'après la doc, je suis donc obligé d'utiliser des tables INNODB.

    En vous remerciant,

    C. Tobini

  2. #2
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 488
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 488
    Points : 6 039
    Points
    6 039
    Par défaut
    Pourquoi vous n'utilisez pas un autre champs de type auto_incrément que vous utilisez comme index ?
    Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 334
    Points : 123
    Points
    123
    Par défaut
    Bonjour,

    A moins que je ne me trompe, si j'ai 2 clés primaires AUTO_INCREMENT, le fait de comparer des chaînes de caractères non indexées feront parcourir séquentiellement la totalité de la table pour chaque occurence de la table temporaire, je crois.

    C. Tobini

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. indexation de chaine de caractères
    Par cyberkamikaz dans le forum Algorithmes et structures de données
    Réponses: 0
    Dernier message: 28/03/2011, 22h28
  2. Egalité chaine de caractère ?
    Par bond70 dans le forum Langage
    Réponses: 2
    Dernier message: 28/05/2010, 15h32
  3. python chaines de caractères et index
    Par registre2008 dans le forum Général Python
    Réponses: 5
    Dernier message: 03/12/2008, 14h58
  4. Egalité entre chaine de caractère
    Par Invité dans le forum Qt
    Réponses: 13
    Dernier message: 05/02/2008, 21h12
  5. [Debutant][Tableau] Tableau indexé sur chaine de caractères
    Par SamRay1024 dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 07/05/2004, 11h14

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