IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration MySQL Discussion :

Enorme différence de performance entre deux environnements


Sujet :

Administration MySQL

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2011
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 72
    Points : 107
    Points
    107
    Par défaut Enorme différence de performance entre deux environnements
    Bonjour,

    J'utilise MySql sur deux machines, une sous mac OSX pour le dev et un serveur debian pour la prod.
    Sur le serveur de production, l'une de mes requêtes est extremement lente (env 70sc) alors qu'elle s'execute en moins d'une seconde sur ma machine de dev.

    Voilà, ma question n'est pas exactement de trouver d'où vient le problème mais plus de savoir s'il existe des outils/methodes qui me permettrait de l'identifiant.
    J'aimerais par exemple savoir s'il s'agit d'une difference de configuration de masql ou si c'est simplement une difference de perf machine.
    Voilà, j'espère que ma question n'est pas trop vague.

    Cordialement

    Edit :
    Quelques informations supplémentaires...
    Spec Machine de dev : OSX El Capitan, Proc 2,9Ghz i5, 8Go de RAM
    Spec Machine Prod : OS Debian, Proc 3,0Ghz 4 Coeur, 4Go de RAM
    Les configuration de mysql sont d'origine sur les deux serveur (pas forcement les mêmes)

  2. #2
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 064
    Points
    19 064
    Par défaut
    Salut NoPr0n.

    Même si dans les deux cas, tu avais le même fichier my.ini (ou my.cnf), il faudrait aussi tenir compte de la surcharge de tes deux machines.
    Pour comparer explicitement la même requête sur tes deux machines, il te faut, non pas le temps elaps, mais le temps cpu.
    C'est un peu compliquer à obtenir à l'inverse du gros système (IBM) où cette information est fournie naturellement.
    Ainsi tu saurais celle qui s'exécute le plus rapidement (je parle du temps CPU).
    Mais en admettant que le temps CPU est similaire, tu peux avoir une grosse différence en temps elaps.
    La cause, et bien, la surcharge de ta machine !

    Si tu veux comparer les temps d'exécution, il y a ceci :
    --> http://dev.mysql.com/doc/refman/5.7/...w-profile.html

    En ce qui concerne tes outils, je n'en connais aucun qui puisse comparer deux machines afin de déterminer les différences.
    Sinon, pour l'optimisation, il y a MySQL Tuner :
    --> https://wiki.deimos.fr/MysqlTuner_:_..._serveur_MySQL

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2011
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 72
    Points : 107
    Points
    107
    Par défaut
    Merci pour ces quelques éléments de réponse.
    Après quelques investigations supplémentaires, je me suis rendu compte que ce qui prenait du temps n'était pas l'exécution de la requête en elle même mais le 'fetch'.

    Je suppose que le 'fetch' prend en compte l'envoi sur le réseau ou du moins le chargement en mémoire des résultats et que c'est donc ça qui est lent (ce qui expliquerait que ça ne soit pas le cas sur ma machine de dev, en local et où phpmyadmin ajoute sa petite pagination).

  4. #4
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 064
    Points
    19 064
    Par défaut
    Salut NoPr0n.

    Vous voulez certainement parler du fetch php pdo qui consiste à récupérer la ligne suivante.
    Tout dépend de la volumétrie que vous avez, mais en général, c'est assez long à l'exécution.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2011
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 72
    Points : 107
    Points
    107
    Par défaut
    Le fetch en question est celui remonté par MySQL Workbench (la colonne juste a coté du temps d'exécution de la requete). Mais je suppose que c'est effectivement l'équivalent du fetch pdo lorsque workbench tente de récupérer les données

  6. #6
    Membre expérimenté
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 088
    Points : 1 540
    Points
    1 540
    Par défaut Petite précision
    Bonjour,
    Avez-vous essayé votre requête en locale sur votre serveur Debian ?
    Et si cela n'est pas possible, avez-vous essayé votre requête vers votre serveur Dev mais pas en locale, depuis un phpmyadmin lancé sur n'importe quel poste du réseau ?
    En effet, comparer un trafic local à un trafic réseau révèlera toujours des différences parfois très significatives. Les contraintes en locale sont purement matériel, en clair, beaucoup de mémoire, un bon processeur un disque SSD et même une requête bien pourrie se réalise instantanément. Par contre, les contraintes liées au trafic réseau sont bien plus nombreuses. Un réseau bien pourri, et même une fusée intergalactique mettra 70 secondes à vous répondre...
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

  7. #7
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 136
    Points : 38 561
    Points
    38 561
    Billets dans le blog
    9
    Par défaut
    Bonjour,

    Ce serait beaucoup plus facile de vous aider si vous communiquiez la requête en question, la description de vos tables et index, et les volumétries par table sur la machine de production

  8. #8
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 064
    Points
    19 064
    Par défaut
    Salut escartefigue.

    A priori, ce n'est pas un problème de requête, mais de configuration de son serveur de production !

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 07/07/2015, 16h57
  2. [SQL] obtenir la différence en jours entre deux dates sql
    Par toma03 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 06/06/2007, 12h20
  3. [Dates] Calculer différence en jours entre deux dates
    Par looping2b2a dans le forum Langage
    Réponses: 4
    Dernier message: 29/12/2006, 23h32
  4. Différence de fonctionnement entre deux animations
    Par jpboogie dans le forum Flash
    Réponses: 3
    Dernier message: 09/10/2006, 10h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo