Maison  >  Article  >  base de données  >  Comment le réglage MySQL peut améliorer les performances de PrestaShop

Comment le réglage MySQL peut améliorer les performances de PrestaShop

王林
王林original
2024-08-13 18:30:40986parcourir

PrestaShop est une plateforme de commerce électronique spécialisée, gratuite et open source développée en PHP, visant à fournir aux entreprises, des startups aux grandes entreprises, l'infrastructure nécessaire pour lancer, gérer et faire évoluer leurs boutiques en ligne.

Offrant une riche sélection de thèmes personnalisables et une suite complète de fonctionnalités de commerce électronique, PrestaShop prend en charge un large éventail de fonctionnalités, telles que la gestion des produits, les paiements sécurisés, l'expédition et la gestion des stocks, directement dès la sortie de la boîte.

Comment améliorer les performances des applications

L'amélioration des performances des applications grâce au réglage est mieux obtenue avec une approche globale qui aborde les domaines suivants :

  • Ressources du serveur – CPU, mémoire, stockage
  • Configurations logicielles — Linux, Nginx, Php…
  • Configurations du système de gestion de base de données (SGBD) — MySQL, PostgreSQL
  • Optimiser le schéma de base de données et modifier les index
  • Optimiser les applications — Code, Requêtes, Architecture…

De nombreux développeurs PrestaShop expérimentés ne considèrent pas l’optimisation des performances des bases de données comme une opportunité d’améliorer les performances de leurs applications car ils connaissent peu ce domaine. Ils passent beaucoup de temps à optimiser la base de code, mais celle-ci atteint un point où elle n'apporte plus de résultat précieux pour le temps et l'énergie investis. Notre recherche sur la façon dont le réglage MySQL affecte positivement les performances des applications Web open source populaires vise à présenter ce fait aux utilisateurs.

Configuration des tests

La version de PrestaShop utilisée pour les tests est la 8.1.2, qui est spécifiquement optimisée pour une utilisation avec PHP 8.1. Des conseils détaillés sur l’installation de cette version de PrestaShop peuvent être trouvés dans la documentation officielle.

Nous avons installé PrestaShop avec l'installation par défaut avec les données de démonstration, exportons tous les produits de démonstration et les importons plusieurs fois en tant que nouveaux produits, puis nous installons plusieurs langues pour le commerce électronique.

La durée de notre test était de 2 jours. Pour gérer cette période de test plus longue, nous sommes passés de BlazeMeter (durée maximale du test de 20 minutes) à Locust, un outil de test de charge open source.

Nous avons utilisé :
Instance GCP Compute Engine c2-standard-4, équipée de Debian Bullseye pour le système d'exploitation, d'Apache pour le serveur Web et de MariaDB 10.5 dans sa configuration par défaut avec une taille de base de données de 1 Go.

Configuration MySQL

Configuration optimisée pour Prestashop :

[mysqld]
innodb_change_buffering=none
innodb_change_buffer_max_size=25
innodb_adaptive_flushing_lwm=25.000000
innodb_max_dirty_pages_pct=70.000000
innodb_autoextend_increment=48
thread_stack=299008
transaction_prealloc_size=8192
thread_cache_size=172
max_connections=172
query_cache_type=1
query_cache_size=134217728
query_cache_limit=33554432
query_cache_min_res_unit=4096
key_buffer_size=8388608
max_heap_table_size=16777216
tmp_table_size=16777216
innodb_buffer_pool_size=3355443200
innodb_log_file_size=25165824
innodb_file_per_table=1
sort_buffer_size=2097152
read_rnd_buffer_size=262144
bulk_insert_buffer_size=8388608
myisam_sort_buffer_size=8388608
innodb_buffer_pool_chunk_size=134217728
join_buffer_size=8388608
table_open_cache=2048
table_definition_cache=512
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=16777216
innodb_write_io_threads=4
innodb_read_io_threads=4
innodb_flush_method=O_DIRECT
innodb_thread_concurrency=0
optimizer_search_depth=0
innodb_purge_threads=4
thread_handling=one-thread-per-connection
thread_pool_size=6

Résultats des tests

L'évaluation des performances de PrestaShop a révélé des améliorations significatives après l'optimisation.

Notamment, le temps de réponse a connu une diminution remarquable de 610 ms à 370 ms, marquant une amélioration de 39%. De même, la capacité du site Web à traiter les requêtes a augmenté de 50 %, passant de 8 à 12 requêtes par seconde.

L'

utilisation du processeur a connu une réduction, passant de la pleine capacité à 100 % à 90 %, soit une 10 % diminution de la charge. Le plus impressionnant est que la capacité de traitement des requêtes de MySQL est passée de 5 078 à 7 816 requêtes par seconde, soit une augmentation substantielle de 53 %.

Nous avons enregistré un screencast pour montrer l'impact sur le temps de réponse après l'application de la configuration MySQL recommandée.

How MySQL Tuning Can Improve PrestaShop Performance

How MySQL Tuning Can Improve PrestaShop Performance

Configuration MySQL optimisée par Prestashop par rapport à la configuration par défaut

Les graphiques des résultats des tests sont disponibles ci-dessous :

How MySQL Tuning Can Improve PrestaShop Performance
Temps de réponse (ms), configuration MySQL optimisée par Prestashop par rapport aux valeurs par défaut

How MySQL Tuning Can Improve PrestaShop Performance
Utilisation du processeur (%), configuration MySQL optimisée par PrestaShop par rapport aux valeurs par défaut

How MySQL Tuning Can Improve PrestaShop Performance
Requêtes par seconde, configuration MySQL optimisée par Prestashop par rapport aux valeurs par défaut

Contributions communautaires

Dans la mise en place de notre environnement de test, nous avons collaboré étroitement avec Giuseppe Pompeo, PDG de Multiservicios Austral. L’entreprise de Giuseppe est à la pointe des services numériques au Chili, notamment connue pour son expertise en matière de commerce électronique via PrestaShop. Leur équipe, reconnue et certifiée par PrestaShop, délivre des services spécialisés et professionnels dans ce domaine depuis plus de six ans.

L'implication de Giuseppe a été cruciale pour préparer notre serveur, lancer notre site Web et le remplir avec les données initiales. Sa vaste expérience de l'infrastructure cloud et sa forte concentration sur l'optimisation des plateformes de commerce électronique telles que PrestaShop ont joué un rôle important dans le bon déroulement de nos tests. Nous sommes immensément reconnaissants pour les connaissances et l’efficacité que Giuseppe a apportées à notre projet.

Conclusion

Notre procédure de test, utilisant PrestaShop, a montré des améliorations du Temps de réponse (latence), de l'Utilisation du processeur et des Requêtes par seconde après avoir configuré la configuration du serveur de base de données. .

Le

Temps de réponse (latence) a chuté de 39 %, tandis que l'Utilisation du processeur a chuté de 10 %. Les Requêtes par seconde ont augmenté PrestaShop de 53%. Requêtes par seconde sur le site Web +50 %.

Avec cette recherche, nous espérons mettre en valeur la valeur du réglage MySQL comme moyen d'améliorer les performances des applications PrestaShop et encourager les utilisateurs de PrestaShop à considérer cette pratique lors de l'optimisation des performances de leurs sites Web.

Grâce à des outils comme Releem, les bases de données peuvent être configurées rapidement et facilement pour des performances optimales, réduisant ainsi la charge des équipes de développement logiciel.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn