Après l'installation initiale d'une base de données MySQL, les responsables informatiques peuvent détecter que les performances d'E / S de leurs serveurs ont commencé à se dégrader..

Une des raisons les plus courantes est la fragmentation des disques durs. Si votre installation particulière utilise un nombre élevé d'appels aléatoires, cela entraînera souvent une fragmentation de toute la mémoire installée..

Avoir un régime de défragmentation en place est essentiel pour éviter ce problème de performance.

Les tables SQL constituent l’un des domaines clés dans lesquels rechercher la fragmentation. Cela peut souvent arriver avec une suppression aléatoire et des insertions fragmentant de plus en plus une table jusqu'à ce que les performances du serveur hôte diminuent..

De plus, si vous constatez une augmentation de l'utilisation de l'espace disque qui ne peut pas être expliquée par d'autres actions que vous avez entreprises, il est probable qu'une table fragmentée soit à blâmer, car elles ont tendance à utiliser davantage d'espace disque disponible..

Premier pas

Les tables les plus courantes pour expérimenter la fragmentation seront InnoDB et MyISAM. Pour les administrateurs système chargés de comprendre pourquoi les performances de leur base de données se sont détériorées, se concentrer d'abord sur l'ancien type de table constituera toujours une bonne première étape..

En effet, comme la table InnoDB marque toutes les données écrites comme supprimées, ce bloc reste vide et n'est pas écrasé par de nouvelles données. Bien sûr, avec le temps, cela gonfle artificiellement la table et pose un problème de performance.

Généralement, l'exécution de la routine 'Optimiser la table' reconstruira la table et son index. Notez que la table sera verrouillée pendant l'exécution de cette commande.

En outre, les administrateurs système doivent savoir que les tables secondaires peuvent toujours présenter des niveaux de fragmentation élevés, même une fois la routine terminée..

Cependant, de nombreux administrateurs système sont plus intelligents avec leurs régimes de défragmentation, car ils se rendent compte que certaines tables auront plus de trafic que d’autres. Effectuer une défragmentation dure via la routine Optimiser une table peut s'avérer inefficace.

Une des conséquences de cette opération régulière est que chaque instance génère un journal de transactions, dont la sauvegarde peut prendre un temps de plus en plus long. En outre, vérifier le niveau de fragmentation réel de chaque index avant de commencer peut souvent être très révélateur..

Définir un niveau minimum de fragmentation d'index avant la défragmentation garantit que vous n'effectuez pas de défragmentation inutile sur vos serveurs..

Faible facteur de remplissage

Les administrateurs système doivent également réfléchir à la manière dont leur base de données est configurée. Dans certains cas, cela inclut un facteur de remplissage faible, ce qui accélère les écritures dans la base de données mais ralentit les lectures..

Ils peuvent également constater des avantages en termes de performances s’ils peuvent mettre en cache leurs bases de données..

Si ce n'est pas possible, regardez comment la base de données est répartie sur les disques durs installés. Si vous avez partagé le stockage sur une installation Dell PowerEdge, par exemple, réfléchissez à la manière de simplifier cela pour réduire le nombre d’accès aléatoires que votre base de données doit effectuer sur un nombre donné de disques durs..

En plus de se concentrer sur les tables de base de données elles-mêmes, les responsables informatiques doivent également réfléchir à la maintenance des disques durs physiques utilisés par leurs serveurs. Une défragmentation du système d'exploitation à intervalles réguliers devrait offrir une meilleure durée de vie du matériel et permettre également aux applications installées de voir les améliorations de performances..