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 :

Optimisation et index multiple [MySQL-5.5]


Sujet :

Requêtes MySQL

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2011
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Optimisation et index multiple
    Bonjour,

    Je me pose une question quand à l'optimisation des requêtes sql via des index multiples.
    c'est peut être évident mais je ne suis pas un expert en mysql.

    Imaginons que j'ai une table TEST avec les champs A, B, C, D ,E,F.

    Dans mon code (php), j'ai des requêtes avec les "WHERE" suivant :

    - Select (..) from TEST where A='x' and B='y'
    - Select (..) from TEST where A='x' and B='y' and F='z'
    - Select (..) from TEST where A='x' and B='y' and ( D='w' or F='z' )


    quelle est la meilleur façon de procéder pour avoir la meilleure rapidité lors de l'exécution des requêtes ?

    3 index comme ci (A,B) , (A,B,F) et (A,B,D,F) ?
    Ou un seul index multiple (A,B,D,F) ?

    j'aurai tendance à dire que les 3 index serait le mieux même si évidement la place des index dans la base sera plus grand.
    Dans ma problématique,je recherche le temps de réponse, la base étant d'un taille raisonnable.

    Merci à vous.

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    Pour une réponse précise, il faudrait connaitre la structure des tables et la requête complète. (voire même le contenu des tables pour connaitre la sélectivité des différents index possible)

    De façon générale sur votre problème, deux index possibles pour couvrir l'ensemble des requêtes :[A,B,F,D] ou [B,A,F,D]. (mettre A ou B en premier en fonction de la colonne la plus sélective)

    Cependant :
    -en fonction des colonnes contenues dans le select, il pourrait être utile d'ajouter d'autres colonnes pour rendre l'index réellement couvrant.
    -en fonction de la sélectivité des différentes colonnes, il pourrait être utile de créer plusieurs index. Il faudra aussi prendre en compte la fréquence de mise à jour de la table...

    3 index comme ci (A,B) , (A,B,F) et (A,B,D,F) ?
    (A,B) serait inutile dans ce cas, car redondant avec (A,B,F)

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

Discussions similaires

  1. [Delphi 7] [DBase 4] Index multiple
    Par alainvh dans le forum Bases de données
    Réponses: 22
    Dernier message: 04/11/2016, 15h19
  2. Optimisation BDD Index etc..
    Par mediateur59 dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 20/10/2006, 11h23
  3. [Matrice]Optimisation de la multiplication
    Par progfou dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 27/06/2006, 18h11
  4. Dbase et index multiples
    Par jeff&Natacha dans le forum Autres SGBD
    Réponses: 1
    Dernier message: 29/04/2005, 10h47
  5. index multiple
    Par mona dans le forum Débuter
    Réponses: 5
    Dernier message: 26/04/2005, 19h45

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