Améliorer les Performances de la Base de Données sur VPS

Publié : par Josh Helmuth
Améliorer les Performances de la Base de Données sur VPS thumbnail

Recherche “améliorer les performances de la base de données VPS” et tu trouveras des entreprises d’hébergement proposant des mises à niveau VPS à travers des articles de blog. Nous pourrions aussi — nous avons un produit VPS hautement évolutif.

Mais les mises à niveau seules ne résoudront pas ton problème.

Tu aurais juste une base de données lente sur un serveur plus cher. En réalité, la plupart des sites web n’ont pas besoin de mises à niveau, surtout pas comme premier pas pour améliorer les performances.

Tu veux optimiser le site web et la base de données avant d’envisager une mise à niveau.

C’est notre objectif avec ce guide — t’aider à optimiser les performances de la base de données sur ton VPS existant.

Que Voulons-Nous Dire Par « Optimiser Les Performances De La Base De Données » ?

Optimiser les performances de la base de données signifie améliorer systématiquement la rapidité et l’efficacité avec laquelle une base de données traite les requêtes, gère les utilisateurs simultanés et gère les ressources. Cela implique des techniques telles que l’indexation, l’optimisation des requêtes et le réglage du matériel pour réduire les temps de réponse, augmenter le débit et réduire les coûts opérationnels tout en maintenant la précision des données et la fiabilité du système.

Voici comment cela se déroule:

Concept d'optimisation de base de données montrant comment nettoyer les données inutiles peut éviter des mises à niveau coûteuses de VPS en transformant un stockage de base de données encombré en une structure de base de données organisée et efficace.

Pense à ta base de données comme à une salle de stockage. Avec le temps, les choses s’accumulent jusqu’à ce qu’il n’y ait plus d’espace pour bouger et que trouver ce dont tu as besoin prenne une éternité.

Pour t’aider avec ça, tu pourrais :

  • Achète un espace de stockage plus grand.
  • Supprime les objets inutiles.

L’option la meilleure : supprime d’abord les éléments inutiles. Déplacer le désordre vers un espace plus grand ne résout pas le problème de fond. Tu pourrais te retrouver avec le même problème quelques mois plus tard, maintenant avec ton espace de stockage plus grand.

Ta base de données fonctionne de la même manière. Elle collecte des données (même en accumulant des choses dont tu n’as plus besoin), donc, tu as besoin de nettoyages réguliers.

Est-ce Vraiment Ta Base De Données Ou Ton Code De Site Web Qui Est Surchargé ?

Tu dois vérifier ce qui ralentit réellement ton site.

Quand la base de données est le goulot d’étranglement :

  • Les pages avec du contenu dynamique (comme les listes de produits ou les archives de blogs) se chargent lentement.
  • L’espace d’administration de ton site est lent lors de la gestion des articles ou des produits.
  • Les requêtes de base de données prennent plus de 1 à 2 secondes pour s’exécuter.
  • Les pics de trafic provoquent des ralentissements importants.

Quand le code du site web est le problème :

  • Ton site met une éternité à charger même si l’activité de la base de données est minimale. (Même les pages statiques chargent lentement !)
  • Les fichiers d’images volumineux ou les médias non optimisés alourdissent les temps de chargement (vérifie d’abord avec GTmetrix).
  • Trop de Plugins ou des thèmes lourds provoquent des retards.

Outils de diagnostic rapide :

  • Utilise des outils comme Query Monitor (pour WordPress) pour voir quelles requêtes de base de données prennent le plus de temps.
  • Vérifie l’utilisation du CPU et de la mémoire de ton serveur pendant les heures de pointe.
  • Lance un test PageSpeed sur les pages riches en base de données et les pages statiques pour comparer les temps de chargement.

Si les requêtes de base de données dépassent régulièrement quelques secondes, ou si les pages lourdes en base de données se chargent significativement plus lentement que les pages statiques, tu as un problème de performance de base de données qui mérite d’être résolu.

Note De Nerd : Nous devons être clairs – Ces recommandations ne sont pas spécifiques à DreamHost. Nous mentionnons cela parce que lorsque tu as un des environnements d’hébergement géré de DreamHost, l’équipe de DreamHost s’occupera de la maintenance au niveau du serveur pour toi.

Recevez du contenu directement dans votre boîte de réception

Abonnez-vous maintenant pour recevoir toutes les dernières mises à jour directement dans votre boîte de réception.

Comment Peux-Tu Optimiser La Performance De La Base De Données Sur Un VPS ?

Voici ton guide étape par étape pour faire fonctionner ta base de données comme si elle était sous des suppléments de performance :

1. Mets À Jour Ton Logiciel VPS

Cela semble basique, mais de nombreux propriétaires de sites web ne mettent jamais à jour leur système d’exploitation VPS ou leur logiciel serveur après que le site soit en ligne.

Pourquoi Cela Importe : Un logiciel de base de données obsolète est le moyen le plus simple de passer à côté des améliorations de performance et des correctifs de sécurité que les développeurs ont publiés.

Par exemple, un test de performance de base de données a montré que les versions plus récentes de MariaDB sont 13%-36% plus rapides que les versions de MySQL de la même période. Donc, si tu utilises encore une ancienne version de la base de données, mettre à jour vers la version la plus récente devrait entraîner une augmentation significative de la performance.

Quoi mettre à jour spécifiquement :

  • Logiciel de base de données : MySQL ou MariaDB
  • Version PHP : PHP 8.4 (dernière version stable publiée en novembre 2024) ou PHP 8.3 pour une compatibilité maximale
  • Système d’exploitation : Maintiens ta distribution Linux à jour avec les derniers correctifs de sécurité
  • Serveur web : Apache ou NGINX

Note de nerd : Pense à tester les mises à jour dans un environnement de préproduction d’abord ! Tu ne voudrais pas que ton site en direct se casse à cause d’un problème de compatibilité.

2. Nettoyer Le Gonflement De La Base De Données

Souviens-toi de l’analogie de la salle de stockage ? Il est temps de faire le Marie Kondo dans ta base de données maintenant.

Voici des encombrements courants de base de données que tu devras régulièrement nettoyer :

  • Anciennes révisions de publication (WordPress peut enregistrer plus de 50 révisions par publication)
  • Commentaires Spam et méta de commentaires inutilisés
  • Transitoires expirés et données de cache
  • Tables résiduelles de Plugins inutilisés
  • Fichiers logs qui n’ont pas été effacés depuis des mois

Pour les utilisateurs de WordPress :

  • Utilise des plugins, comme WP-Optimize ou Advanced Database Cleaner.
  • Limite les révisions des articles en ajoutant define (‘WP_POST_REVISIONS’, 3); à ton wp-config.php.
  • Supprime régulièrement les commentaires spam.
  • Met à jour ta version de PHP vers PHP 8.4, qui inclut des améliorations de performance, y compris des opérations SHA-256 2x à 5x plus rapides et des fonctions sprint optimisées.

Pour d’autres plateformes :

  • Exécute les commandes OPTIMIZE TABLE sur les tables fréquemment mises à jour.
  • Supprime les entrées de logs inutiles datant de plus de 30 jours.
  • Supprime les données de test ou fictives que tu as créées pendant le développement.

3. Indexation Des Bases de Données

Concept d'index de base de données illustré par une armoire à fichiers avec des tiroirs organisés étiquetés alphabétiquement (A-C, D-F, G-I, J-L, M-O, P-R) montrant comment les index aident à localiser rapidement les données.

Pense à des index de base de données comme à une table des matières pour un livre.

Sans eux, ta base de données doit scanner chaque ligne pour trouver ce dont elle a besoin. Avec les index, la base de données peut raccourcir son chemin vers l’endroit où se trouvent les données que tu as demandées. Un indexage approprié peut réduire le temps des requêtes de secondes à millisecondes et aider à améliorer la performance de ta base de données considérablement, surtout avec des bases de données plus grandes.

Pour WordPress, utilise un plugin comme Index WP MySQL For Speed, suis les étapes dans le plugin, et c’est tout.

Cependant, tu dois absolument créer une sauvegarde du site web avant d’indexer la base de données.

Quand ajouter des index :

  • Tu as de grandes tables avec des milliers de lignes pour les produits, articles de blog, utilisateurs, etc.
  • Colonnes que tu recherches ou filtres fréquemment
  • Colonnes de clé étrangère
  • Nombreuses colonnes utilisées dans les opérations de « JOIN » ou les clauses « WHERE »

Quand ne PAS ajouter d’index :

  • Petites tables (moins de 1 000 lignes ne présentent généralement pas d’amélioration de performance)
  • Colonnes qui changent fréquemment (les index ralentissent les opérations « INSERT/UPDATE »)
  • Tu manques d’espace et veux être économe (les index prennent de l’espace)

4. Configurer La Mise En Cache Des Requêtes

Ta base de données est comme une bibliothécaire serviable qui se fait demander le même ensemble de livres (populaires) souvent. Au lieu de se rendre à l’arrière-salle, d’essayer de trouver les livres encore et encore, une bibliothécaire intelligente se souvient où les livres se trouvent, peut-être même en les gardant dans les tiroirs de son bureau.

Le cache de requête fonctionne de manière similaire. Lorsque ta base de données exécute une requête, elle stocke le résultat en mémoire. La prochaine fois que quelqu’un demande les mêmes données, au lieu de relancer la requête complexe, ta base de données fournit le résultat mis en cache presque instantanément.

Si les données sont mises à jour, le résultat mis en cache est également mis à jour, et les nouveaux utilisateurs reçoivent automatiquement les résultats les plus récents.

Comparaison du caching des requêtes de base de données montrant une amélioration spectaculaire des performances : sans caching, cela prend 2,3 secondes à 40% de vitesse contre avec caching à 0,1 seconde et 100% de vitesse de chargement pour les requêtes de produits populaires.

Voici comment tu peux implémenter la mise en cache des requêtes pour les utilisateurs de MySQL 8.0 (le plus courant) :

  • ProxySQL: Le remplacement recommandé pour le cache de requête de MySQL. Il se place entre ton application et la base de données, mettant en cache les résultats avec un TTL configurable
  • Mise en cache au niveau de l’application : Les utilisateurs de WordPress devraient utiliser des Plugins de mise en cache comme W3 Total Cache ou similaires au lieu de la mise en cache au niveau de la base de données pour une mise en œuvre plus rapide.
  • Redis ou Memcached : Systèmes de mise en cache externes nécessitant des modifications de code mais offrant plus de contrôle et une meilleure évolutivité. Certains produits d’hébergement proposent une mise en cache d’objets intégrée avec Redis pour les sites de e-commerce, les sites de membres, ainsi que les sites d’actualités ou de blogs.

Pour la plupart des petits sites web, tu peux ignorer en toute sécurité la mise en cache des requêtes au niveau de la base de données. Utilise plutôt les fonctionnalités de mise en cache intégrées de ton CMS ou de ton application en premier. Si tu as besoin de plus de performances, contacte un développeur pour mettre en place une instance Redis pour la mise en cache d’objets.

Mise à jour importante : Le cache de requête intégré de MySQL a été déprécié dans MySQL 5.7.20 et complètement supprimé dans MySQL 8.0. Bien que MariaDB prenne toujours en charge le cache de requête, il est désactivé par défaut en raison de problèmes de scalabilité sur les machines multi-cœurs.

5. Configure Ton Paramétrage de Base de Données

Ta base de données est livrée avec des paramètres par défaut conçus pour fonctionner sur n’importe quel serveur, d’un petit hébergement partagé à du matériel d’entreprise. Mais tout comme un t-shirt taille unique, ces paramètres ne sont pas optimisés pour tes besoins. Ils font juste le travail.

Les environnements VPS te donnent le pouvoir de personnaliser ces paramètres pour ta configuration spécifique.

Voici les changements les plus significatifs pour les bases de données MySQL et MariaDB :

  • innodb_buffer_pool_size: Régler à 70-80% de ta RAM disponible. Pour un VPS de 4GB, utilise environ 3GB.
  • innodb_redo_log_capacity: Pour MySQL 8.0.30+, commence avec 1-2GB (remplace l’ancien paramètre innodb_log_file_size).
  • max_connections: Régler à 4x tes cœurs de CPU, minimum 100. La plupart des petits sites ont besoin de seulement 20 à 50.
  • query_cache_size: 128M-256M pour MySQL 5.7/MariaDB (MySQL 8.0 a complètement supprimé le cache des requêtes).

Utilise MySQL Tuner ou PGTune pour obtenir des recommandations personnalisées basées sur tes propres modèles d’utilisation. Ces outils analysent ta configuration actuelle et suggèrent des valeurs optimales.

Conseil pro : MySQL 8.0.30+ te permet de redimensionner les journaux de réécriture sans redémarrer :

SET GLOBAL innodb_redo_log_capacity = 2147483648

Toujours sauvegarder ta base de données avant de faire des modifications de configuration ! Teste dans un environnement de préproduction, puis pendant les périodes de faible trafic.

6. Choisissez Le Moteur de Stockage Adapté

Considère les moteurs de stockage comme différents systèmes de classement pour tes données. Tu as besoin d’organiser les données différemment pour travailler avec le moteur de stockage que tu utilises.

La plupart des applications modernes utilisent InnoDB (le moteur par défaut de MySQL), mais il existe des cas spécifiques où d’autres moteurs sont pertinents sur un VPS.

  • InnoDB (recommandé pour la plupart des sites) : Parfait pour les sites e-commerce, les blogs et les applications avec des mises à jour fréquentes. Il prend en charge les transactions, les clés étrangères et la récupération après crash. Le compromis est une utilisation légèrement plus élevée de la mémoire, mais sur un VPS avec des ressources dédiées, cela n’est généralement pas un problème.
  • MyISAM (à utiliser avec parcimonie) : Plus rapide pour les opérations lourdes en lecture et utilise moins de mémoire, mais manque de récupération après crash et de support de transactions. À envisager uniquement pour les tables qui changent rarement, comme les tables de recherche ou les archives.
  • Memory (cas spéciaux uniquement) : Stocke les données dans la RAM pour un accès ultra-rapide mais perd tout lorsque le serveur redémarre. C’est parfait pour les données temporaires ou le stockage de session sur un VPS où tu contrôles l’environnement.

Pour vérifier les moteurs de stockage utilisés par tes tables, exécute :

SHOW TABLE STATUS;

Dans ta console MySQL, tu peux convertir des tables avec :

ALTER TABLE your_table ENGINE = InnoDB;

L’avantage du VPS : Contrairement à l’hébergement partagé, tu as le contrôle total sur les choix de moteurs de stockage et tu peux également choisir de faire fonctionner plusieurs moteurs simultanément sans restrictions. Bien sûr, cela signifie que tu dois être prudent avec ce que tu choisis dès le début pour éviter une migration plus tard.

7. Surveille Et Teste En Continu

L’optimisation de la base de données n’est pas une tâche à “configurer et oublier”. Ton site grandit, les modèles de trafic changent, et ce qui fonctionnait le mois dernier pourrait ne pas être optimal aujourd’hui.

La bonne nouvelle, c’est que les environnements VPS rendent la surveillance simple puisque tu as un accès complet aux ressources système et aux logs de la base de données.

Voici quelques outils de surveillance essentiels :

  • htop ou top : Surveille l’utilisation du CPU et de la mémoire en temps réel.
  • Commande iostat : Vérifie la performance des disques I/O (installer avec : apt-get install sysstat).
  • Liste des processus MySQL : Exécute SHOW PROCESSLIST; pour voir les requêtes actives.
  • Journal des requêtes lentes : Activez ceci pour détecter les requêtes qui prennent plus de 2 secondes.

Tu configures un contrôle hebdomadaire en utilisant des outils tels que GTmetrix ou Google PageSpeed Insights, en te concentrant particulièrement sur les pages qui sollicitent fortement ta base de données — pages de produits, résultats de recherche ou archives de blog.

Évaluation des Core Web Vitals par Google PageSpeed Insights montrant un statut échoué avec des métriques incluant LCP à 4.5s, INP à 360ms, CLS à 0, FCP à 4.4s, et TTFB à 0.7s.

Concentre-toi particulièrement sur ton Temps de Premier Octet (TTFB), car c’est souvent là que les problèmes de performance de la base de données peuvent être repérés. Dans la capture d’écran ci-dessus, tu vois que le TTFB est de 0,7 secondes.

TTFB

TTFB est l’abréviation de Time To First Byte. Cela mesure la durée pendant laquelle un navigateur attend avant de recevoir le premier octet de données d’un serveur.

En Savoir Plus

Améliorer le TTFB améliore également ton score de Core Web Vitals, qui est l’un des signaux de classement de Google.

Drapeaux rouges à surveiller :

  • TTFB constamment supérieur à 1 seconde
  • Utilisation de la mémoire supérieure à 80% pendant un trafic normal
  • Journal des requêtes lentes montrant les mêmes requêtes à plusieurs reprises
  • Connexions à la base de données saturées pendant les périodes de pointe

Lorsque tu remarques des problèmes, ne panique pas et ne suppose pas immédiatement que tu as besoin d’une mise à niveau du VPS. Généralement, l’une des optimisations que nous avons abordées nécessite simplement quelques ajustements.

Quand Devrais-Tu Vraiment Mettre À Niveau Ton VPS ?

Dans notre analogie de la salle de stockage, tu te souviendras que nous avons optimisé (supprimé les déchets) pour s’adapter à la même salle.

Mais, si tu manques d’espace même après optimisation, tu as dépassé la capacité de la pièce et il est temps d’en acheter une plus grande.

C’est la même chose avec une mise à niveau de VPS. Si tu as effectué toutes les optimisations et que tu ne constates toujours pas beaucoup de changement dans les performances, tu pourrais avoir besoin d’un VPS plus grand.

Voici quelques signaux clairs qui t’indiqueront si le VPS est le goulot d’étranglement :

  • Utilisation du CPU constamment supérieure à 80% pendant un trafic normal.
  • Utilisation de la RAM dépasse régulièrement 85%.
  • Les requêtes de la base de données sont optimisées mais restent lentes en raison des limitations matérielles.
  • Les temps de chargement du site dépassent encore 3 secondes après optimisation.

Que mettre à niveau en premier :

  1. RAM: Généralement le plus grand gain de performance pour les sites à forte utilisation de bases de données.
  2. CPU: Si tu effectues beaucoup de calculs complexes ou de traitement.
  3. Stockage: Passe aux SSD NVMe si tu es encore sur des disques durs traditionnels.

Rappelle-toi, le temps de chargement recommandé pour tous les sites web est de moins de 3 secondes. Essaye de le réduire au maximum et c’est parfait !

Ton Parcours De Performance De Base De Données

Maintenant, j’ai de bonnes nouvelles et des nouvelles pas si bonnes.

La bonne nouvelle, c’est que tu as une base de données entièrement optimisée qui fonctionne efficacement sur ton VPS et qui dessert ton site web à des vitesses éclair.

La nouvelle pas si bonne, c’est que ce n’est pas terminé. Tout comme toute autre tâche de maintenance, les bases de données nécessitent une optimisation régulière.

Mais tu ne navigues plus à l’aveugle. Tu sais quoi chercher et comment le réparer.

Il existe de nombreux outils (comme WP Optimize et l’optimisation de la base de données de LiteSpeed Cache) qui t’aident à réaliser la plupart des tâches de maintenance de la base de données en quelques clics si tu utilises WordPress.

Si une mise à niveau est la seule option restante, essaie les plans VPS de DreamHost et découvre l’accélération presque instantanée de la vitesse que ton site expérimentera avec notre matériel de la plus haute qualité.

VPS Hosting
VPS Hosting

Quand Tu Attends Des Performances, Choisis DreamHost VPS

Grand ou petit, site web ou application – nous avons une configuration VPS pour toi.

Voir Plus