Mysql
 sql >> Base de données >  >> RDS >> Mysql

10 conseils utiles sur le réglage des performances de MySQL

Comme toutes les autres bases de données, MySQL peut être compliqué et peut cesser à tout moment de mettre toutes vos activités et tâches en jeu. Cependant, des erreurs courantes sous-tendent la plupart des problèmes affectant les performances.

Pour vous assurer que votre serveur fonctionne efficacement en fournissant des performances stables et cohérentes, vous devez éliminer les erreurs souvent causées par une subtilité dans la charge de travail ou le piège de configuration.

À mesure que le volume de données augmente, il devient de plus en plus complexe. Par conséquent, il est essentiel de bien optimiser les bases de données pour offrir une expérience utilisateur efficace. Le réglage des performances de MySQL est la solution ultime car il aidera à fournir des solutions à ces problèmes de base de données.

Réglage des performances MySQL

Dans cet article, vous trouverez quelques conseils utiles sur l'utilisation du réglage des performances de MySQL. Cela vous aidera à tirer le meilleur parti de votre MySQL.

Étape 1 :N'utilisez pas MySQL comme file d'attente

À votre insu, des modèles de file d'attente et de type file d'attente peuvent se faufiler dans votre application. Un exemple typique consiste à marquer des e-mails comme non envoyés, à les envoyer, puis à les marquer comme envoyés. il s'agit d'un problème courant mais rarement imperceptible que la plupart des utilisateurs ont tendance à ignorer.

Ils entraînent deux complexités majeures en matière de performances :

  1. Ils sérialisent votre charge de travail, empêchant ainsi que les tâches soient exécutées en séquence parallèle. En outre, ils aboutissent souvent à une table contenant les travaux en cours et les données historiques des travaux qui ont été traités il y a longtemps. Cela ralentit généralement la vitesse et le processus de traitement.
  2. Les deux ajoutent de la latence à l'application et chargent MySQL.

Étape 2 :Établissez le profil de votre charge de travail

Le profilage de votre charge de travail est essentiel car il vous aide à comprendre le fonctionnement de votre serveur et le temps qu'il passe à traiter les tâches. Le meilleur outil pour vous aider à le faire est l'analyseur de requêtes MySQL Enterprise Monitors de la boîte à outils Percona.

Remarque : Uniquement disponible pour les utilisateurs de Linux

Les outils peuvent capturer les requêtes exécutées par le serveur et renvoyer un tableau des tâches triées en diminuant l'ordre des temps de réponse.

Le profilage de votre charge de travail expose les requêtes les plus coûteuses pour un réglage supplémentaire. Le temps est le plus critique car ce qui compte, c'est la rapidité avec laquelle il se termine lors de l'émission d'une requête.

Les outils de profilage regroupent également les requêtes similaires, ce qui permet de voir les requêtes lentes et les plus rapides mais exécutées plusieurs fois.

Étape 3 :Comprendre les quatre ressources fondamentales

Le processeur, la mémoire, le disque et le réseau sont les quatre ressources fondamentales nécessaires au fonctionnement d'une base de données. Par conséquent, la base de données risque de mal fonctionner si l'une de ces ressources est surchargée, faible ou erratique.

Vous devez toujours vous assurer que les quatre ressources mentionnées sont solides et stables pour que MySQL fonctionne parfaitement. Les organisations choisissent généralement les serveurs dotés de processeurs rapides et de disques pouvant accueillir davantage d'emplacements de mémoire.

L'ajout de mémoire est un moyen facile et peu coûteux d'augmenter les performances par ordre de grandeur, en particulier sur les charges de travail liées au disque. Cela peut sembler déraisonnable, mais de nombreux disques sont surutilisés car il n'y a pas assez de mémoire pour contenir l'ensemble de données de travail du serveur.

Lors du dépannage, vérifiez attentivement les performances et l'utilisation des quatre ressources pour vous aider à déterminer les statistiques de performances des quatre ressources. La surveillance de leurs performances est importante car elle aide l'utilisateur à savoir ce qui doit être amélioré ou doit être remplacé. Vous pouvez essayer cette méthode car c'est l'une des méthodes les plus rapides pour résoudre les problèmes de performances dans MYSQL.

Étape 4 :Filtrer les résultats par le moins cher en premier

Un excellent moyen d'optimisation consiste à effectuer d'abord le travail bon marché et imprécis, puis le travail difficile et précis sur le plus petit, ce qui aboutit à l'ensemble de données.

Exemple :

Supposons que vous recherchiez quelque chose dans un rayon donné d'un point géographique. Le premier outil de ma boîte à outils de programmeur est la formule Haversine {Great circle} pour calculer la distance le long de la surface d'une sphère.

Le problème avec la technique est que la formule nécessite de nombreuses opérations trigonométriques, qui sont très sensibles au processeur. Par conséquent, les calculs ont tendance à s'exécuter lentement et à faire monter en flèche l'utilisation du processeur de la machine.

Avant d'utiliser la formule, réduisez vos enregistrements à un petit sous-ensemble du total et découpez l'ensemble résultant en un cercle précis. Le carré qui contient le cercle, que ce soit avec précision ou imprécision, est un moyen facile de le faire. Cela garantit que le monde extérieur au carré ne sera jamais touché par toutes ces fonctions trigonométriques coûteuses.

Étape 5 :Connaître et comprendre les deux pièges mortels de l'évolutivité.

L'évolutivité n'est peut-être pas aussi vague que beaucoup le pensent. Au lieu de cela, il existe des définitions mathématiques précises de l'évolutivité exprimées sous forme d'équations qui mettent en évidence pourquoi les systèmes ne s'adaptent pas aussi bien qu'ils le devraient.

La loi d'évolutivité universelle est une définition pratique pour exprimer et quantifier les caractéristiques d'évolutivité des systèmes. Il explique les problèmes de mise à l'échelle en termes de sérialisation et de diaphonie, qui sont les deux coûts fondamentaux.

Les processus parallèles qui doivent s'arrêter pour que quelque chose de sérialisé ait lieu sont intrinsèquement limités dans leur évolutivité. De plus, si des processus parallèles ont besoin de communiquer entre eux pour coordonner leur travail, ils se limitent mutuellement. Par conséquent, il est préférable d'éviter la sérialisation et la diaphonie pour permettre à votre application d'évoluer rapidement et efficacement.

Étape 6 :Ne vous concentrez pas trop sur la configuration

Les gens passent trop de temps à peaufiner les configurations. Le résultat n'est généralement pas une amélioration significative et peut parfois être très dommageable. Les paramètres par défaut fournis avec MySQL sont uniques et obsolètes, vous n'avez donc rien à configurer.

Il est donc essentiel de maîtriser les bases et de modifier les paramètres uniquement si nécessaire. Dans de nombreux cas, les outils de réglage du serveur ne sont pas recommandés car ils pourraient induire les utilisateurs en erreur avec des informations contradictoires. Certains contiennent des conseils dangereux et inexacts, tels que les taux d'accès au cache et les formules de consommation de mémoire.

Étape 7 :Faites attention aux requêtes de pagination

Les applications qui paginent mettent généralement le serveur à genoux. Les optimisations peuvent souvent être trouvées dans l'autre interface utilisateur elle-même. Par exemple, au lieu d'afficher le nombre exact de pages dans les résultats et les liens, vous pouvez afficher uniquement un lien vers une page contenant ces informations. Ainsi, vous pouvez empêcher les gens de surcharger la page d'origine.

Du côté de la requête, au lieu d'utiliser décalage avec limite, une ligne supplémentaire peut être sélectionnée, et lorsque vous cliquez sur "page suivante", vous pouvez désigner cette dernière ligne comme point de départ pour le prochain ensemble de résultats.

Étape 8 :Enregistrez les statistiques avec impatience, alertez à contrecœur

L'alerte et la surveillance sont essentielles, mais ce qui arrive au système de surveillance typique, c'est qu'il commence à envoyer des faux positifs. Les administrateurs système configurent des règles de filtrage des e-mails pour arrêter le bruit, et bientôt votre système de surveillance devient inutile.

Il est important de capturer et de sauvegarder toutes les mesures que vous pouvez, car vous serez heureux de les avoir lorsque vous essaierez de comprendre ce qui a changé dans le système. De plus, lorsqu'un problème étrange survient, vous pourrez pointer vers un graphique et suivre facilement un changement dans la charge de travail du serveur.

Les gens alertent généralement sur des choses comme le taux d'accès au tampon ou le nombre de tables temporaires créées par seconde. Le problème est qu'il n'y a pas de seuil raisonnable pour un tel ratio. De plus, le seuil approprié est différent selon les serveurs et de temps en temps à mesure que votre travail change.

Par conséquent, alertez avec parcimonie et uniquement sur les conditions qui indiquent un problème précis et exploitable. Par exemple, un faible taux d'accès à la mémoire tampon ne donne pas lieu à une action et n'indique pas non plus un problème réel, mais un serveur qui ne répond pas à une tentative de connexion est un problème réel qui doit être résolu.

Étape 9 :Apprenez les trois règles d'indexation

C'est le sujet le plus mal compris dans les bases de données car il existe de nombreuses façons d'apprendre comment fonctionnent les index et comment le serveur les utilise. Les index, s'ils sont correctement conçus, remplissent trois fonctions importantes dans un serveur de base de données :

  1. Au lieu de lignes uniques, les index permettent au serveur de trouver des groupes de lignes adjacentes. De nombreuses personnes pensent que le but des index est de trouver des lignes individuelles, mais la recherche de lignes uniques entraîne des opérations de disque aléatoires, ce qui ralentit considérablement le serveur. Trouver des groupes de lignes est bien meilleur et intéressant que de trouver des lignes une par une.
  2. Cela permet également au serveur d'éviter le tri en lisant les lignes dans l'ordre souhaité. La lecture des lignes, contrairement au tri, est beaucoup plus rapide et moins coûteuse.
  3. Les index permettent également au serveur de satisfaire des requêtes entières à partir de l'index seul, évitant ainsi d'avoir à accéder à la tablette. Ceci est connu sous le nom d'index de covey ou de requête d'index uniquement.

Étape 10 :Tirez parti de l'expertise de vos pairs

Cela vous dérangerait-il de ne pas le faire seul ? Réfléchir aux problèmes et faire ce qui vous semble logique et sensé peut fonctionner la plupart du temps, mais pas tout le temps. Au lieu de cela, créez un réseau de ressources liées à MySQL allant au-delà des ensembles d'outils et des guides de dépannage.

Les gens sont incroyablement bien informés et se cachent dans les listes de diffusion, les forums, etc. En outre, les conférences, les salons professionnels et les événements de groupes d'utilisateurs locaux offrent de précieuses opportunités d'obtenir des informations et d'établir des relations avec des pairs qui peuvent vous aider.

Pour les quelques personnes à la recherche d'outils pour compléter ces conseils, vous pouvez consulter l'assistant de configuration Percona pour MySQL et les plug-ins de surveillance MySQL Percona.

L'assistant de configuration peut vous aider à générer une ligne de base. fichier my.cnf pour un nouveau serveur supérieur aux exemples de fichiers livrés avec le serveur.

Le conseiller de requête qui est supérieur aux exemples de fichiers livrés avec le serveur. Le conseiller analysera votre SQL pour aider à détecter les modèles potentiellement destructeurs tels que les requêtes de pagination (astuce 7).

Les plugins de surveillance Percona sont des ensembles de plugins de surveillance et de création de graphiques qui vous aident à enregistrer des statistiques avec impatience et à alerter à contrecœur (étape n° 8). Tous ces outils sont disponibles gratuitement.

Avantages du réglage des performances

Le principal avantage est qu'il vous permet d'éviter le surprovisionnement et de réduire les coûts en dimensionnant correctement vos services. Il vous indique également si le déplacement du stockage de données ou l'ajout de capacité de serveur améliorera ou non les performances, et si c'est le cas, dans quelle mesure.

Une fois qu'une base de données est correctement réglée, elle donne des résultats de performance bénéfiques avec de grandes fonctionnalités. Cela réduit non seulement la charge de tâches indésirables, mais optimise également la base de données MySQL pour une récupération plus rapide des données.

D'autres paramètres peuvent faire la différence en fonction de votre charge de travail ou de votre matériel. L'objectif est de vous donner quelques réglages de performances MySQL pour obtenir rapidement une configuration MySQL saine sans passer trop de temps à modifier des paramètres non basiques ou à lire la documentation pour comprendre quels paramètres vous intéressent.

Conclusion

En conclusion, le réglage des performances offre de nombreux avantages et est recommandé lorsque vous travaillez sur de grandes quantités de données pour améliorer l'efficacité de votre serveur. En suivant les conseils donnés dans cet article, vous serez en mesure d'effectuer confortablement le réglage des performances de MySQL sur votre serveur et vos bases de données.