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

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2004
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 18
    Points : 7
    Points
    7
    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 habitué 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
    Points : 166
    Points
    166
    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 é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
    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.
    Pensez au bouton

+ 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