GNU/Linux >> Tutoriels Linux >  >> Linux

Améliorer la mise en cache de la base de données MySQL

Avertissement

En raison de problèmes d'échelle et d'autres cas particuliers, le cache de requête MySQL / Mariadb n'est plus recommandé. Nous vous recommandons vivement de vous assurer que la mise en cache est gérée au niveau d'une application niveau à la place.

Aperçu

Dans la plupart des systèmes Linux, l'instance de base de données MySQL installée par défaut est souvent configurée sur une plage de paramètres sûre pour assurer un fonctionnement stable. Les paramètres de mise en cache des requêtes ne sont généralement pas activés ou définis de manière très prudente. En raison de ce conservatisme, l'accès à la base de données utilise peu de mémoire système pour mettre en cache les requêtes répétées. En activant le cache et en l'adaptant aux besoins de l'application, des améliorations sont visibles dans la plupart des applications, en particulier les magasins de commerce électronique Magento.

Pour les tests initiaux, une taille de cache de 32 Mo a été décidée comme point de départ. Avant toute modification, les paramètres du cache de la base de données situés dans /etc/my.cnf ont été configurés comme :

query_cache_limit 1M
query_cache_size  0
query_cache_type  ON

Modification des paramètres

Pour apporter des modifications, le fichier /etc/my.cnf a été modifié pour inclure les paramètres suivants et la base de données a été redémarrée. Après les modifications, la base de données rapporte ce qui suit :

query_cache_limit 2M
query_cache_size  32M
query_cache_type  ON

Tests

Pour tester nos modifications, nous avons initialement installé une boutique de commerce électronique Magento avec la base de données de produits de démonstration par défaut installée. Nous avons chronométré la récupération de chaque produit en utilisant le siège. En augmentant la taille du cache sur la base de données, 200 ms supplémentaires ont été réduits du temps de réponse du site. Ce simple changement indiquerait qu'il pourrait y avoir plus de place pour l'amélioration des paramètres et de la disposition du sous-système de base de données afin de l'optimiser spécifiquement pour l'utilisation de Magento, sachant que l'optimisation pour Magento peut être au mieux une tâche délicate !

Pièges !

Le script populaire MySQLTuner (comme détaillé dans notre guide de réglage et d'optimisation des performances MySQL) a été exécuté et a indiqué que la modification du nombre de threads serait bénéfique, mais ce changement a entraîné une baisse des performances de 290 ms !

Conclusion

Hors de la boîte, la configuration de la base de données MySQL est bonne mais pourrait être nettement meilleure. L'augmentation du cache a fourni une réponse bénéfique instantanée. En plus des améliorations des performances de la base de données, il existe également diverses technologies de cache telles que Memecached et Redis qui amélioreront les performances en mettant en cache les données souvent référencées.


Linux
  1. FAQ sur le déploiement de MySQL

  2. Optimiser la base de données MySQL

  3. Comment copier une base de données MySQL

  4. Dupliquer toute la base de données MySQL

  5. Base de données MySql à partir d'une clé USB

PHP MySQL Sélectionner les données

Liste des tables dans une base de données MySQL

Comment sauvegarder une base de données WordPress via MySQL

Serveur de base de données MySQL

Comment créer une base de données dans MySQL

Présentation de MySQL