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 :

Votre avis sur mes index


Sujet :

Requêtes MySQL

  1. #1
    Membre actif Avatar de grinder59
    Inscrit en
    Septembre 2005
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 707
    Points : 215
    Points
    215
    Par défaut Votre avis sur mes index
    Bonjour,

    Je suis en train de tenter d'optimiser ma base et je voudrais avoir votre avis sur les index que j'utilise.

    Ma page php exécute un certain nombre de fois les 7 requête suivantes :

    1. SELECT id WHERE v1=val1 AND v2=val2 AND v3=val3 AND v4=val4

    2. SELECT id WHERE v1=val1 AND v2<=val2 AND v2bis>=val2bis AND v3=val3 AND v4=val4

    3. SELECT id WHERE v1=val1 AND v2<=val2 AND v2bis>=val2bis AND v3=val3 AND v4=val4 AND v5 = val5

    4. SELECT id WHERE v1=val1 AND v2<=val2 AND v2bis>=val2bis AND v3=val3 AND v4=val4 AND v6 = val6

    5. SELECT id WHERE v1=val1 AND v2<=val2 AND v2bis>=val2bis AND v3=val3 AND v4=val4 AND (v7 = val7 OR v7 = val7bis)

    6. SELECT id WHERE v1=val1 AND v2<=val2 AND v2bis>=val2bis AND v3=val3 AND v4=val4 AND v8 = val8

    7. SELECT id WHERE v1=val1 AND v2<=val2 AND v2bis>=val2bis AND v3=val3 AND v4=val4 AND (v7 = val7 OR v7 = val7bis) AND v8 = val8

    Sachant que chaque requête est exécutée si la précédente ne donne rien.

    ma clé primaire est id et j'ai placé un index sur les colonnes suivantes (dans cet ordre) :
    v1,v2,v4,v3 et v5.

    v1 aura moins de 1000 valeurs possibles
    v2 aura moins de 10 000 valeurs possibles
    v3 a au maximum 288 valeurs possibles
    v4 a 7 valeurs possibles
    v5 aura moins de 10 000 valeurs possibles

    Dans ma base, je pourrai compter jusqu'à 200 000 enregistrements (14 000 après 1 an d'exploitation)

    Que pensez vous de mes index ? Avez vous un lien me permettant d'étudier leur pertinence ?

    Question subsidiaire : vaut il mieux que je fasse 7 requête simple ou une seule requête qui reprend tous les where ci dessus ?

    Merci de votre aide !

  2. #2
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    Bonjour,

    Ca fait beaucoup de questions en une

    A quoi correspondent val2bis, v6, v7, val7bis dans tes requêtes ?

    Pour évaluer l'efficacité de tes index, utilise EXPLAIN.
    Un index sur chaque colonne v1, v2, ..., v5 me parait bien, et un index multiple sur (v1, v2, ..., v5) serait à tester.

    Ton idée de requêtes successives en entonnoir est astucieuse, mais il faut bien veiller à ce que les premières requêtes couvrent le maximum des cas. Si 90% du temps tu es obligé d'exécuter les 7 requêtes ça vaut pas trop le coup...

    PS : Merci d'utiliser les balises [ code ]

Discussions similaires

  1. Votre avis sur mes CV (Français & Anglais)
    Par fungio dans le forum CV
    Réponses: 17
    Dernier message: 07/09/2011, 14h10
  2. Votre avis sur mes codes
    Par herzak dans le forum Langage
    Réponses: 2
    Dernier message: 28/01/2011, 11h41
  3. [PHP 5.1] Votre avis sur mes classes de débutants
    Par arthuro45 dans le forum Langage
    Réponses: 0
    Dernier message: 17/10/2010, 08h44
  4. Votre avis sur mes relations
    Par momo_gea dans le forum Modélisation
    Réponses: 21
    Dernier message: 29/05/2007, 08h36

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