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

10

début: clause de non-responsabilité

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

fin: clause 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_who2les connexions existantes pour voir 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.

Yasker Yasker
la source
Avez-vous vérifié les problèmes de ressources habituels - CPU plein, RAM plein / non utilisé, surcharge IO? Le 101 stuffyou commencerait sur un serveur sql?
TomTom
Je n'ai pas eu l'occasion de - je veux juste être préparé une fois que je suis entré pour que tout continue à bouger - il est possible que les personnes sur place aient déjà vérifié et avec des serveurs d'application et de base de données avec des spécifications élevées (entreprise folie) i aimerait se concentrer sur ce qui se passe si le matériel n'est pas le problème
Yasker Yasker
Par expérience, commencez par là. J'ai vu des "serveurs haut de gamme" avec un disque dur SCSI (qu'ils ont dû retirer d'une vente aux enchères sur ebay) qui avaient des temps de réponse de plusieurs secondes ... Je validerais le côté IO. Cela aidera également - trop d'E / S peuvent indiquer des indices manquants si les chiffres sont tout simplement ridicules.
TomTom

Réponses:

9
  • Consigner les 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 consigner les requêtes lentes pour une analyse 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 n'avez aucune idée de 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 base de données MySQL et spécialement ceux qui sont nouveaux dans MySQL, ces outils leur fourniront une bonne assistance.
Mahesh Patil
la source