Rate this post

Du profilage de la charge de travail aux trois règles de l’indexation, ces conseils d’experts vous permettront de faire hurler vos serveurs MySQL.

4 conseils essentiels sur les performances de MySQL

Comme toutes les bases de données relationnelles, MySQL peut s’avérer être une bête compliquée, capable de s’arrêter en un clin d’œil, laissant vos applications en plan et votre entreprise en péril. En réalité, des erreurs communes sont à l’origine de la plupart des problèmes de performances de MySQL. Pour que votre serveur MySQL fonctionne à plein régime et fournisse des performances stables et régulières, il est important de procéder régulièrement à un dépannage informatique  afin d’éliminer ces erreurs, qui sont souvent masquées par une subtilité dans votre charge de travail ou un piège de configuration.

Base de données lente ? Améliorez la vitesse et l’évolutivité de votre SGBDR grâce à des règles pour des requêtes SQL plus rapides.  Restez au courant des sujets les plus brûlants de la programmation.  Heureusement, de nombreux problèmes de performance de MySQL ont des solutions similaires, ce qui rend le dépannage et la mise au point de MySQL faciles à gérer.

Conseil n° 1 sur les performances de MySQL : établissez le profil de votre charge de travail

La meilleure façon de comprendre comment votre serveur passe son temps est de profiler la charge de travail du serveur. En établissant le profil de votre charge de travail, vous pouvez mettre en évidence les requêtes les plus coûteuses afin de les optimiser. Dans ce cas, le temps est la mesure la plus importante, car lorsque vous lancez une requête sur le serveur, vous ne vous souciez guère que de la rapidité de son exécution. La meilleure façon de profiler votre charge de travail est d’utiliser un outil tel que l’analyseur de requêtes de MySQL Enterprise Monitor ou le pt-query-digest du Percona Toolkit. Ces outils capturent les requêtes exécutées par le serveur et renvoient un tableau de tâches triées par ordre décroissant de temps de réponse, faisant instantanément remonter les tâches les plus coûteuses et les plus longues vers le haut afin que vous puissiez voir où concentrer vos efforts.

Les outils de profilage de la charge de travail regroupent les requêtes similaires, ce qui vous permet de voir les requêtes qui sont lentes, ainsi que les requêtes rapides mais exécutées plusieurs fois.

Conseil n° 2 sur les performances de MySQL : comprenez les quatre ressources fondamentales

  • Pour fonctionner, un serveur de base de données a besoin de quatre ressources fondamentales : L’unité centrale,
  • La mémoire,
  • Le disque
  • Le réseau.

Si l’une de ces ressources est faible, irrégulière ou surchargée, le serveur de base de données risque fort de ne pas fonctionner correctement. La compréhension des ressources fondamentales est importante dans deux domaines particuliers : le choix du matériel et le dépannage des problèmes.

Lors du choix du matériel pour MySQL, assurez-vous que tous les composants sont performants. Il est tout aussi important de les équilibrer raisonnablement les uns par rapport aux autres. Souvent, les organisations choisissent des serveurs dotés de processeurs et de disques rapides, mais qui manquent de mémoire. Dans certains cas, l’ajout de mémoire est un moyen peu coûteux d’augmenter les performances de plusieurs ordres de grandeur, notamment pour les charges de travail liées aux disques. Cela peut sembler contre-intuitif, mais dans de nombreux cas, les disques sont surutilisés parce qu’il n’y a pas assez de mémoire pour contenir l’ensemble des données de travail du serveur.

Un autre bon exemple de cet équilibre concerne les processeurs. Dans la plupart des cas, MySQL fonctionnera bien avec des CPU rapides, car chaque requête s’exécute dans un seul thread et ne peut pas être parallélisée sur plusieurs CPU. Lorsqu’il s’agit de dépanner, vérifiez les performances et l’utilisation de ces quatre ressources, en cherchant à déterminer si elles sont peu performantes ou si on leur demande simplement de faire trop de travail. Cette connaissance peut aider à résoudre les problèmes rapidement.

Conseil n° 3 sur les performances de MySQL : n’utilisez pas MySQL comme une file d’attente

Les files d’attente et les modèles d’accès de type file d’attente peuvent se faufiler dans votre application sans que vous le sachiez. Par exemple, si vous définissez le statut d’un élément pour qu’un processus de travail particulier puisse le réclamer avant d’agir sur lui, vous créez involontairement une file d’attente. Marquer des e-mails comme non envoyés, les envoyer, puis les marquer comme envoyés est un exemple courant. Les files d’attente posent des problèmes pour deux raisons principales : Elles sérialisent votre charge de travail, empêchant les tâches d’être exécutées en parallèle, et elles aboutissent souvent à une table qui contient des travaux en cours ainsi que des données historiques provenant de tâches traitées il y a longtemps. Ces deux éléments ajoutent de la latence à l’application et de la charge à MySQL.

Conseil n° 4 sur les performances de MySQL : filtrez d’abord les résultats par le moins cher

Un excellent moyen d’optimiser MySQL consiste à effectuer d’abord le travail peu coûteux et imprécis, puis le travail difficile et précis sur l’ensemble de données plus petit qui en résulte. Par exemple, supposons que vous cherchiez quelque chose dans un rayon donné autour d’un point géographique. Le premier outil dans la boîte à outils de nombreux programmeurs est la formule du grand cercle (Haversine) pour calculer la distance le long de la surface d’une sphère. Le problème de cette technique est que la formule nécessite beaucoup d’opérations trigonométriques, qui sont très gourmandes en ressources CPU. Les calculs du grand cercle ont tendance à s’exécuter lentement et à faire grimper en flèche l’utilisation du CPU de la machine. Voir ce site https://geneve.news/category/informatique/ et vous en saurez plus !

 

 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *