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 requête SQL!!! help!!


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2004
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 18
    Par défaut [résolu]optimisation requête SQL!!! help!!
    Voila j'ai la requête suivante :

    select MESSAGE_titre,MESSAGE_id,MIN(message_date) as date_push
    from tbl_message_email ,tbl_push_mail
    where push_mail_msg_id <> message_id and message_licence_id='1'
    group by MESSAGE_id,MESSAGE_titre
    having MIN(message_date)<'2003-03-28'
    order by message_id

    elle met envorion 85s à être effectuée!! il y a 269 enregistrement pour tbl_message_email et 1 000 000 pour tbl_push_mail !!

    je souahiterai savoir ce qui clocherait dans cette requête car en fait je fait une migration ms server cvers mysql et avant cette requête était :

    select MESSAGE_titre,MESSAGE_id,MIN(message_date) as date_push
    from tbl_message_email where message_licence_id=1
    and message_id not in (select distinct push_mail_msg_id from tbl_push_mail) group by MESSAGE_id,MESSAGE_titre having MIN(message_date)<'03/28/2003' order by message_id

  2. #2
    Membre éclairé Avatar de meufeu
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    355
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 355
    Par défaut
    Je te conseille d'effectuer la requete en deux fois ...

    Tu fais ton premier select
    ensuite tu boucle dedans et tu fais le second ...

  3. #3
    Membre Expert 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
    Par défaut
    Tu es sûr que ta requête renvoie le bon résultat ?

    On utilise plutôt une jointure externe pour remplacer une sous-requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    select MESSAGE_titre,MESSAGE_id,MIN(message_date) as date_push 
    from tbl_message_email LEFT JOIN tbl_push_mail 
    ON push_mail_msg_id = message_id
    WHERE  push_mail_msg_id IS NULL
    AND message_licence_id='1'
    group by MESSAGE_id,MESSAGE_titre 
    having MIN(message_date)<'2003-03-28' 
    order by message_id
    Je pense que ça devrait déjà accélerer les choses.
    En plus, tu peux mettre un index sur message_licence_id.

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

Discussions similaires

  1. Optimisation requête SQL 2
    Par ludo00002 dans le forum SQL
    Réponses: 13
    Dernier message: 10/10/2008, 12h29
  2. Optimisation requête SQL
    Par ludo00002 dans le forum SQL
    Réponses: 2
    Dernier message: 06/10/2008, 09h01
  3. Comment optimiser requête SQL avec création Index
    Par schumi101 dans le forum SQL
    Réponses: 25
    Dernier message: 11/12/2007, 21h28
  4. optimisation requête SQL
    Par marti dans le forum Oracle
    Réponses: 4
    Dernier message: 27/04/2006, 08h54
  5. Besoin d'aide pour optimiser requête SQL
    Par Keuf95 dans le forum Langage SQL
    Réponses: 10
    Dernier message: 06/09/2005, 16h02

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