Optimisation d'une requete mysql - SQL/NoSQL - Programmation
Marsh Posté le 10-03-2006 à 15:32:56
déjà, dans un "exists", on met toujours "select null" ou "select 1", ça sert à rien de charger des données dans un segment temporaire pour rien.
ensuite, vérifie que datetraitement2 et sitecode2 sont bien indexés dans la table "temp" ainsi que dans la table "lignes_cde".
sinon, je ne vois rien qui cloche avec ta requête...
ps: MySQL combien? si c'est une version qui supporte les triggers, vu que ton truc ça semble être "je recopie les données de "lignes_cde" dans "lignes_cde_his" avant de les mettre à jour avec les lignes de "temp", je pense qu'un trigger permettrait de faire quelquechose de plus propre (sur "before update" ) tout et ce sertait certainement plus rapide, puisqu'il n'y aurait pas de requête à faire (le trigger va se contenter de faire un insert pour chaque ligne mise à jour, sans devoir aller cherches des données à partir d'autres tables comme ici)
Marsh Posté le 10-03-2006 à 12:05:00
Bonjour à tous,
Je cherche à optimiser cette requête qui met un temps fou dans un cas précis.
Si le WHERE exists est confirmé alors la requete est très rapide.
En revanche si le "WHERE exists" n'est pas vérifié alors la requête devient vraiment très lente et met plus de 20mn pour seulement 10 000 enregistrements.
Quelqu'un connaitrait-il une méthode pour optimiser cette requête ou pour régler mon problème ?
Merci par avance.
Message édité par tartiflette75 le 10-03-2006 à 12:19:22
---------------
https://www.entrepreneur-liberte.com