web-dev-qa-db-fra.com

Ralentissement des performances du serveur MySql - Quoi et comment vérifier?

début: avertissement

Je ne suis pas un DBA MySql Server; Je connais surtout MSSQL - c'est pourquoi j'ai besoin de votre aide.

fin: avis de non-responsabilité

On m'a demandé de vérifier pourquoi le moteur du serveur MySql fonctionne mal - je n'ai pas vu ni conservé les bases de données impliquées et je voudrais savoir par où commencer.

Où est-ce que je commence?

Quelles questions devrais-je poser à ceux qui ont accès à MySql - je ne sais même pas s'ils utilisent phpmyadmin ou un autre outil.

Essentiellement:

  • Quels articles dois-je demander et comment pourrais-je répondre à chaque pièce qu'ils donnent?

Quels sont les éléments clés à demander lorsque le problème concerne les performances de la base de données?

dans MSSQL je peux vérifier sp_who2 pour que les connexions existantes voient si quelque chose bloque, quelle est la contrepartie dans mysql? * ne doivent pas être spécifiques car il peut y avoir de nombreux types de résultats pour chaque élément, mais aimeraient aider à faire avancer les choses car cela affecte les utilisateurs - apparemment, ils configurent le moteur mysql sans avoir de dba à bord.

10
Yasker Yasker
  • Journal des requêtes lentes - Si votre système a une tonne de requêtes, il devient plus difficile de savoir quelles requêtes ralentissent votre système. MySQL fournit un outil pour enregistrer les requêtes lentes pour une analyse plus approfondie http://dev.mysql.com/doc/refman/5.0/en/slow-query-log.html

  • La commande EXPLAIN Extended affiche des détails sur vos requêtes lorsque vous ne savez pas ce qui se passe http://dev.mysql.com/doc/refman/5.0/en/explain-extended.html

  • Pour accélérer vos requêtes, utilisez Index - Une bonne pratique consiste à ajouter un index en voyant quels champs se trouvent dans la clause WHERE, ajoutez un index pour eux. De plus, si vous récupérez tous les champs d'une table, la requête ralentit en récupérant toutes les données du disque. Dans la requête SELECT, vous devez spécifier les champs que vous devez apporter à la place pour les apporter tous avec *
  • Utilisez Query Cache http://dev.mysql.com/doc/refman/5.1/en/query-cache-configuration.html
  • Assurez-vous que les options de votre fichier de configuration de serveur MySQL sont optimisées en fonction de votre matériel http://dev.mysql.com/doc/refman/5.5/en/option-files.html
  • Assurez-vous que vous utilisez des types de données optimisés lors de la création d'une structure de table. Par exemple, les champs "Commentaires" ont une taille de 256 caractères, répondez-le à MYSQL avec un champ de type VARCHAR (256) au lieu d'utiliser TEXT. La requête sera beaucoup plus rapide.

Procedure_Analyse () peut vous aider à trouver les types de données optimaux:

http://www.mysqlperformanceblog.com/2009/03/23/procedure-analyse/

http://dev.mysql.com/doc/refman/5.0/en/procedure-analyse.html

  • Il existe des outils open source de Percona - http://www.percona.com/software/percona-toolkit qui peuvent être utiles pour les administrateurs de bases de données MySQL et spécialement ceux qui sont nouveaux dans MySQL, ces outils fourniront une bonne leur aide.
9
Mahesh Patil