Bonjour,

J'ai besoin d'extraire des données d'une base MySQL pour les intégrer dans une base décisionnelle.

Lors de l'exécution de la requête, qui dure 8 minutes, le serveur MySQL est complètement injoignable jusqu'à ce qu'il est finis le traitement de la requête.

J'ai activé le slow_query_log, toutes les requêtes loggées durent entre 0 et 1 secondes (comme le premier exemple) sauf une qui durent anormalement 131 secondes (cf deuxième exemple).

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
# Time: 090722 15:36:59
# User@Host: jiralect[jiralect] @  [10.252.176.126]
# Query_time: 1  Lock_time: 0  Rows_sent: 8  Rows_examined: 7037

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
# Time: 090722 15:39:11
# User@Host: jiralect[jiralect] @  [IP]
# Query_time: 131  Lock_time: 0  Rows_sent: 10481  Rows_examined: 1078564
Bon, je sais que c'est pas le même nombre de lignes retournées mais c'est complètement anormal qu'ils prennent 131 secondes à parcourir 1 million de lignes.

La requête contient 21 Outer join, dont un seul va taper une colonne non-indexées. A chacune de ses entrées de cette requête, on exécute 6 petites requêtes imbriquées.

Quelqu'un a une idée d'où ça peut venir ?

Merci beaucoup,

Guireg