REQUETE TRES LENTE

WRInaute discret
Bonjour,

J'ai une base de donné de taille 500Mo composé de 10 tables.Tous les tables ( 9 tables ) dépendent d'un seul table intitulé offre .Le taille de ce dernier est presque 350 Mo et contient 1000000 offres.J'utilise les Index sur les principaux champs et dans tous les tables presque.J'utilise presque 9 jointure dans un requête pour afficher le résultat d'un select.


Le problème que le requête prend beaucoup de temps pour s'exécuter.

Mon offre d'hébergement est kimsufi 250G , j'ai tester tous.J'ai utilisé le cache de requête dans mysql.Mais pour les requêtes complexe demande presque 30secondes pour afficher le résultat.

Autre solution svp ?

Cdt.
 
WRInaute impliqué
Prend chacune de tes requetes et passe les avec l'option explain pour voir déjà ce que tu peux faire. Peut-être aussi que tu peux imposer des limites ?

Une solution peut-être créer des tables temporaires qui éviteraient les jointures, ne sachant pas ce que fait ton appli ou ton site je dis cela, mais c'est peut-être impossible dans ton cas.

Ce sont des pistes que tu as peut-être déjà explorées.
 
WRInaute accro
Sans connaître la structure de ta base et les requêtes, impossible d'avancer grand chose, mais une requête qui prend 30 secondes c'est en général le signe que les index ne sont pas utilisés et qu'il y a plein de scans séquentiels, de tris, etc.

Commence par utiliser slow_queries pour repérer les requêtes les plus lentes. Ensuite utilise explain pour voir comment elles sont exécutées, et modifie les requêtes ou ta base jusqu'à ce qu'elles soient plus rapides. Certaines requêtes ne sont pas optimisables, il faut alors voir si tu peux t'en passer ou en limiter l'utilisation.

Jacques.
 
Discussions similaires
Haut