Bonjour à tous,
(j'espère poster dans le bon sous-forum).
Voilà 2 jours que je cherche désespérément une solution...
Mon environnement :
- 1 poste de développement sous Windows (XP)
- 1 poste de production sous Linux (RH4)
Les deux machines sont équipées d'une base mySQL 5, qui sont bien entendu identiques.
Les tables sont en INNODB. Les données sont exploitées via une appli en php.
Mon souci : j'ai une grosse requete pour générer un "export utilisateur" dans l'appli (SELECT avec une vingtaine de jointures) qui s'executait bien jusqu'à maintenant. Le problème, c'est que la base à grossie et les temps de traitement deviennent très très lourds.
Je ne parle ici que de la partie exécution SQL pure et dure (côté php j'ai déjà réduit les temps de traitement).
Voici ce que j'ai modifié pour améliorer les temps d'exécution MySQL :
- J'ai ajouter des indexes
- J'ai modifié le fichier de config my.cnf/ini en allouant 256M au paramètre innodb_buffer_pool_size.
Le temps d'exécution de la requête a considérablement diminué... sous windows.
Mon problème, c'est qu'en affectant exactement la même config sous linux, je n'ai pas du tout les mêmes résultats : Une même requête met 2 sec sous windows, contre presque 30 sec sous linux...
A priori, ce n'est pas un problème de "syntaxe" de la requête puisqu'elle s'exécutre rapidement sous XP, mais véritablement un problème de configuration du serveur.
Je précise que les 2 machines sont exactements les mêmes (marque, CPU, mémoire identiques) et qu'aucune autre appli ne tourne dessus.
Je ne vois vraiment plus quoi faire.
Auriez-vous éventuellement une piste pour m'aider SVP ?
Merci d'avance !
PBR
Partager