Dans cet article, nous discuterons de l'impact d'une activité MySQL excessive et de la manière dont elle peut nuire à l'utilisation globale des ressources de votre compte. MySQL est la base de données principale de nombreuses applications Web populaires et c'est là que ces applications stockent leurs données pour être ensuite récupérées par des scripts côté serveur pour extraire ces informations dans vos pages.
Si vous avez reçu un avis de notre service d'administration système concernant une activité MySQL excessive provenant de votre compte, cela signifie plus que probablement que le niveau d'activité qu'ils voyaient dépassait les capacités de la plate-forme d'hébergement sur laquelle votre compte réside actuellement.
Causes courantes d'une activité MySQL excessive
Requêtes longues | Une requête SQL typique devrait pouvoir se terminer en 1 seconde, voire quelques secondes au maximum. Le fait d'avoir des requêtes longues qui dépassent systématiquement ces temps de requête peut entraîner des retards dans le traitement d'autres requêtes sur le serveur. |
---|---|
Requêtes élevées par seconde | Généralement, les requêtes SQL arrivent par petites vagues directement proportionnelles à votre trafic, et si vos scripts nécessitent une grande quantité de requêtes SQL par chargement de page, vous pourriez avoir un nombre élevé de requêtes SQL par seconde, ce qui peut avoir un impact négatif sur les performances des requêtes du serveur et commencer à entraîner des requêtes longues. |
Requêtes volumineuses non optimisées | Certaines requêtes SQL seront de nature très complexe, en particulier celles qui associent plusieurs tables de données avant d'effectuer des opérations sur ces données. S'assurer que vos requêtes SQL sont efficaces et n'extraient que les données dont elles ont réellement besoin pour afficher, peut aider à empêcher ces requêtes inefficaces de provoquer des requêtes longues ou un nombre élevé de requêtes par seconde. |
Connexions persistantes | La plupart des requêtes SQL ouvrent simplement une connexion à la base de données, récupèrent les données, puis ferment la connexion à la base de données. MySQL prend également en charge les connexions persistantes où la connexion est maintenue même après la récupération des données. Cela peut parfois être problématique, en particulier sur l'hébergement mutualisé où vous pourriez rencontrer le max _user_connections limite définie dans MySQL. |
Dans la plupart des cas, si votre activité MySQL est excessive, notre service d'administration système vous contactera avec une explication générale sur l'origine de l'activité.
Optimiser l'utilisation de MySQL
Une bonne première étape pour optimiser votre base de données MySQL consiste à utiliser phpMyAdmin pour optimiser une base de données.
Parfois, votre activité MySQL normale peut être parfaitement correcte, mais lorsque les robots commencent à explorer votre site, cela peut mettre en évidence des inefficacités dans votre application. Par conséquent, savoir comment empêcher les moteurs de recherche et les robots d'explorer votre site Web serait également une bonne information à connaître.
Enfin, vous voudrez également examiner les options de mise en cache SQL disponibles pour votre application. Par exemple, si votre page d'accueil nécessite 2 requêtes SQL pour afficher toutes les informations sur cette page, et que 100 personnes accèdent à cette page, cela fera 200 requêtes et cela ne récupèrera pas de données uniques à chaque fois.
La mise en œuvre de la mise en cache SQL peut aider à réduire ces requêtes de base de données en double, pour un exemple de ce type de mise en cache, vous pouvez lire sur l'optimisation de WordPress avec le plugin W3 Total Cache.