Aller au contenu

Sujets conseillés

Posté

Bonjour,

Dans une application qui interroge une base de données, la requête d'authentification est très longue (5 secondes et +). La requête effectuant 7 jointures (pas le choix), je me demande si le parsing de celle-ci ne pose pas problème. (La table contenant les utilisateurs comporte 2 millions d'entrées, les autres très peu, mais la table user est placée en premier dans la requête si vous vous posez la question).

Aussi, je voudrais tenter de mettre en cache cette requête qui comporte 2 paramètres (login/pass, classique), je sais que c'est possible dans d'autres SGBD (avec les paramètres), mais je ne trouve pas ceci pour MySQL 5.0.

Pour info,

- le cache des requêtes est activé, et j'ai déjà un peu augmenté sa taille, quelqu'un s'y connaîtrait t'il un peu plus sur MySQL à ce niveau et pourrait me renvoyer vers une doc qui me permettrait de mettre en cache une requête paramétrée,

- la connexion est effectuée via jdbc (PreparedStatement), mais la requête tapée en console prends autant de temps.

Voilà, j'ai pour le moment stocké les utilisateurs actifs dans la RAM afin de ne la faire qu'une fois, mais je cherche une meilleure solution que celle-ci ou une migration douloureuse...

Voilà voilà :-)

Posté

Le premier problème c'est que si ta requête met 5 secondes à s'exécuter, c'est qu'elle est mal optimisée. C'est de la jointure qui doit donner une seule ligne par table concernée? Dans ce cas il doit te manquer des index adaptés. Explain est ton ami.

Jacques.

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...