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 :

Serveur MySQL qui prend 60% du temps processeur


Sujet :

Administration MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 156
    Par défaut Serveur MySQL qui prend 60% du temps processeur
    Bonjour,

    J'ai un souci avec un serveur Apache utilisant les technos PHP/MySQL (la version de MySQL est la 4.1.22). En gros, j'ai une table de logs, et dans celle-ci, je fais de multiples accès (SELECT) avec des index placés de manière assez basique (dès que je fais un select en base avec un WHERE, je rajoute l'index au niveau de la colonne associée au WHERE) mais qui me semblent efficaces.

    Seul problème, à force de rajouter des lignes dans ma table de logs, et de rechercher des infos dans cette même table de logs, le processus mysqld finit par prendre 50 à 60% du temps processeur à lui tout seul (dans le cas de tests poussés) là où il n'en prenait que 5% grand max quand la table en question était vide.

    Ma table est configurée en MyISAM, j'ai tenté de la changer en InnoDB, et ça ne change rien. Quelqu'un saurait-il me dire comment optimiser ce point, si tant est qu'on puisse vraiment faire quelque chose ?

  2. #2
    Membre éprouvé Avatar de kain_tn
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 878
    Par défaut
    Bonsoir,

    Citation Envoyé par Thordax Voir le message
    En gros, j'ai une table de logs, et dans celle-ci, je fais de multiples accès (SELECT) avec des index placés de manière assez basique (dès que je fais un select en base avec un WHERE, je rajoute l'index au niveau de la colonne associée au WHERE) mais qui me semblent efficaces.
    En fait, il ne suffit pas d'avoir un index sur la colonne associée au WHERE sous MySQL pour qu'il soit utilisé. En fait, le choix de l'index dépend également de ce qu'il y a derrière le WHERE, comme LIMIT par exemple. C'est un peu compliqué et je t'invite à visiter ce lien pour comprendre: ici
    Tu peux également lire ce document sur developpez pour en apprendre un peu plus sur les indexes (en particulier les indexes couvrants)

    Citation Envoyé par Thordax Voir le message
    Seul problème, à force de rajouter des lignes dans ma table de logs, et de rechercher des infos dans cette même table de logs, le processus mysqld finit par prendre 50 à 60% du temps processeur à lui tout seul (dans le cas de tests poussés) là où il n'en prenait que 5% grand max quand la table en question était vide.
    Tu peux en plus d'une bonne indexation utiliser le partitionnement horizontal pour améliorer les performances de ta base devant l'augmentation du volume de données.

    Voilà voilà. Si tu as des questions, n'hésites pas

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 156
    Par défaut
    Merci pour ta réponse rapide !

    Dans un premier temps, je suis en train de voir pour le partitionnement de table, effectivement ça peut être intéressant. J'utilise pour l'instant une version de MySQL qui ne me le permet pas a priori, donc ça vaudrait également le coup que je passe à une version plus récente (5.1 ?)

    Par ailleurs, je ne fais que des where "simples" c'est à dire sans "limit" derrière par exemple, je vais étudier tous tes liens pour en savoir plus, merci en tout cas

  4. #4
    Membre éprouvé Avatar de kain_tn
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 878
    Par défaut
    Il n'y a pas de quoi!

    Si ton projet te permet de passer sur une version plus récente de MySQL, c'est bien entendu beaucoup plus intéressant ne serait-ce qu'au niveau des possibilités du langage!

Discussions similaires

  1. [2008R2] script qui prend beaucoup de temps
    Par my_diva dans le forum Développement
    Réponses: 7
    Dernier message: 20/01/2014, 17h48
  2. Extraction qui prend beaucoup de temps
    Par khadija30 dans le forum SSIS
    Réponses: 14
    Dernier message: 14/05/2013, 17h12
  3. [MySQL] Serveur MySQL qui plante car trop de connexions
    Par Dsphinx dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 16/02/2011, 00h50
  4. Réponses: 7
    Dernier message: 10/03/2009, 19h02
  5. Serveur MySQL qui se bloque ?
    Par DrÿSs dans le forum Administration
    Réponses: 8
    Dernier message: 14/08/2008, 15h39

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