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 d'une requête( WHERE)


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 27
    Par défaut Optimisation d'une requête( WHERE)
    Bonjour, dans une requête j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     WHERE condition1 AND condition2
    or condition1 est très économe en temps processeur mais condition2 est très très gourmande. Je voudrais que le serveur teste condition1 en premier puis ne teste pas condition2 si la 1 n'est pas vérifiée. Est ce que c'est possible(simplement) ou bien de toute façon les deux conditions seront testées ?

  2. #2
    Membre émérite Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Par défaut
    oula :d
    tres bonne question ... t as demander au noyau oracle ???

    Si il faut l "analyseur" de requete n atteint meme pas condition2 du moment que condition1 est fausse vu qu il y a un "AND" entre les deux ....
    je pense qu oracle a du gerer ce genre d optim a la base ....

    noon ??

  3. #3
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Par défaut
    Citation Envoyé par laurentibus Voir le message
    je pense qu oracle a du gerer ce genre d optim a la base ....
    ce qu'oracle optimise, c'est pas très important pour MySQL

    syl202, as tu testé d'inverser tes conditions pour voir si tes temps de réponses étaient similaires?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 27
    Par défaut
    Non, je programme sur une toute petite base de test mais c'est en prévision pour quand ce sera en production.

  5. #5
    Membre émérite Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Par défaut
    ce qu'oracle optimise, c'est pas très important pour MySQL
    effectivement
    mais je pense que le "pb" est pris en compte dans une sous couche !!! et donc c pas au dev de le faire ..... enfin je me repete un peu .....

    reste a confirmer

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 27
    Par défaut
    En admettant qu'il s'arrête bien à la première condition non vérifiée, est ce que vous pensez qu'il vaut mieux faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE conditonRapide AND conditionLente
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE conditonLente AND conditionRapide
    autrement dit, est ce qu'il commence le traitement par la fin ou par le début ?

  7. #7
    Membre Expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Par défaut
    Saluton,
    Je pense que c'est le comportement par défaut induit par AND; si la première condition n'est pas vérifiée rien ne sert de vérifier la seconde.
    Mais je n'en suis pas sûr, c'est le cas dans bien des langages, alors pourquoi pas avec le SQL de MySQL ?
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

Discussions similaires

  1. Optimisation d'une requête
    Par Louis-Guillaume Morand dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 20/12/2005, 18h21
  2. Optimisation d'une requête d'insertion
    Par fdraven dans le forum Oracle
    Réponses: 15
    Dernier message: 01/12/2005, 14h00
  3. Optimisation d'une requête patchwork
    Par ARRG dans le forum Langage SQL
    Réponses: 1
    Dernier message: 11/09/2005, 15h23
  4. optimisation d'une requête avec jointure
    Par champijulie dans le forum PostgreSQL
    Réponses: 8
    Dernier message: 07/07/2005, 09h45
  5. [DB2] Optimisation d'une requête
    Par ahoyeau dans le forum DB2
    Réponses: 7
    Dernier message: 11/03/2005, 17h54

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