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

Outils MySQL Discussion :

Serveur surchargé - perdu pour trouver la cause


Sujet :

Outils MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite

    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    690
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 690
    Par défaut Serveur surchargé - perdu pour trouver la cause
    Bonjour,
    Le site Web de ma boite est down de plus en plus fréquement, a cause de requêtes (des select) qui surchargent, puis bloquent le serveur mysql. C'est vrai que les tables sont assez volumineuses (150 000 lignes pour la table principale) mais ces derniers temps sa devient de plus en plus fréquent et sa me fait pousser des cheveux blancs !
    Comment puis je diagnostiquer La cause de cette surcharge (je connais le script qui génère les requêtes problématiques) ??
    Merci pour votre aide je suis un peu pérdu sur ce coup
    Ps : la bd est hébergée chez un fournisseur de service avec une machine dédiée

    edit : un bon tuto ou un bon outil pour l'analyse des requêtes sous mysql

  2. #2
    Membre éprouvé Avatar de giltonic
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 109
    Par défaut
    Je te conseil de regarder la commande

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    > EXPLAIN (TA REQUETE LA PLUS COMPLEXE)
    Il y a des docs bien faites pour t'expliquer comment utiliser les index

    http://dev.mysql.com/doc/refman/5.0/fr/explain.html

  3. #3
    Membre émérite

    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    690
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 690
    Par défaut
    Merci beaucoup, je vais commencer par ça, mais j'ai tellement peur de loader le serveur avec mes requêtes que je vais d'abord répliquer ma bd en local avant de commencer les analyses.
    ps : j'ai trouvé aussi sqlYog qui fait l'analyse de requêtes aussi. a tester

  4. #4
    Membre émérite

    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    690
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 690
    Par défaut
    Re bonjour !
    Merci pour la commande explain, elle m'a été très utile !
    En fait j'ai joint à ce post le résultat du explain de ma requête et je voudrais votre avis sur ce que j'ai fait :
    Sur la première ligne du explain (qui correspond à une clause de where) je vois dans la colonne extra (voir la piece jointe) : Using temporary; Using filesort...donc pas bon !
    ce que j'ai fait : j'ai complétement enlevé la table en question de la requête et je l'ai mise dans une requête indépendante (un simple select sur une table), resultat : la première ligne de mon explain disparait et je me retrouve avec une requête beaucoup plus rapide.
    Je sais que coté php ce n'est pas une bonne pratique de programmation mais est ce que sa va me jouer des mauvais tours coté mysql ?
    Fichiers attachés Fichiers attachés

  5. #5
    Membre émérite

    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    690
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 690
    Par défaut
    J'ajoute ce poste pour dire ce que j'ai fait et cloturer cette discussion

    Après de multiples EXPLAIN (merci giltonic !!!) et des tests, j'ai remarqué que ma requête parcourait à chaque enregistrement une table de 4000 lignes pour en récupérer un seul champ ! et la jointure ne se faisait pas sur la clé primaire et pas sur un champ doté d'un index (bonjour la lenteur).
    J'ai simplement modifié ma bd de tel sorte à ce que à chaque chargement (journalier), le champ en question soit copié dans la table principale. Conceptuellement c'est pas très propre mais le résultat est la : 0.5 secondes en moyennes au lieu de ..... au lieu d'un plantage de serveur à chaque fois .

    Merci beaucoup pour votre aide et longue vie à développez.com

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

Discussions similaires

  1. Commande pour trouver la version de Linux
    Par Gogoye dans le forum Administration système
    Réponses: 11
    Dernier message: 12/02/2013, 15h43
  2. Logiciel pour trouver qui a acces au repertoires de mon serveur
    Par korospoukine dans le forum Windows Serveur
    Réponses: 17
    Dernier message: 13/09/2007, 16h05
  3. Besoin d'aide pour trouver un projet
    Par ptitJP dans le forum C++
    Réponses: 22
    Dernier message: 26/02/2005, 23h14
  4. Besoin d'aide pour trouver un SGBD SVP
    Par rateub dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 26/01/2005, 20h20

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