Maison > base de données > tutoriel mysql > le corps du texte

Comment le réglage MySQL améliore les performances de Laravel

WBOY
Libérer: 2024-07-29 20:33:03
original
529 Les gens l'ont consulté

Le réglage de la configuration MySQL est un composant important de la gestion des bases de données mis en œuvre par les professionnels et les administrateurs de bases de données. Il vise à configurer la base de données en fonction de son matériel et de sa charge de travail. Mais au-delà de la sphère de gestion des bases de données, l’utilité du réglage de la configuration MySQL est largement ignorée.

Nous émettons l'hypothèse que le réglage de MySQL peut affecter de manière significative les performances des applications Web. Si nous pouvons démontrer la valeur du réglage MySQL, nous pensons que les entreprises et les organisations pourraient être désireuses d'intégrer cette pratique à plus grande échelle.

Comment améliorer les performances des applications Laravel

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 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 développeurs.

Approche de test

Notre procédure de test pour Laravel Aimeos nous permet de comparer les performances de l'application avant et après la configuration à l'aide de données prédéfinies. En exécutant d'abord le test avec la configuration par défaut, nous obtenons des résultats de contrôle précieux avec lesquels comparer la configuration optimisée.

Nous avons utilisé le processus suivant pour préparer et tester chaque candidature :

  1. Déployez Laravel Aimeos.
  2. Base de données de semences avec des données.
  3. Préparez le test pour JMeter.
  4. Exécutez le test pendant 10 minutes – Exécutez le test JMeter à l'aide de la plateforme de test de performances Blazemeter.
  5. Régler la configuration de MariaDB – Après les tests de configuration par défaut, notre configuration est restée la même, mais MariaDB a été optimisée pour la charge de travail, les ressources du serveur et la taille de la base de données.
  6. Réexécuter le test – Répéter le test JMeter en utilisant Blazemeter pour la configuration optimisée.

Nous avons publié les tests JMeter, le statut MySQL et les variables MySQL lors des tests sur Github.

Quelles mesures avons-nous examinées ?

Les métriques que nous avons examinées au cours de cette recherche sont :

  1. Temps de réponse (latence) est le temps entre l'envoi de la requête et son traitement côté serveur jusqu'au moment où le client reçoit le premier octet. C'est la mesure importante qui vous donne un aperçu des performances du serveur.
  2. Requêtes par seconde est une métrique qui mesure le nombre de requêtes exécutées par le serveur de base de données par seconde.
  3. Utilisation du processeur.

Nous avons collecté des métriques Utilisation du processeur et Requêtes par seconde pour comparer la charge de travail.

Laravel Aiméos

Aimeos Laravel est un framework d'applications Web de commerce électronique populaire permettant de créer des boutiques en ligne, des places de marché et des applications B2B. Avec Aimeos, les utilisateurs peuvent créer des boutiques de commerce électronique basées sur une API pour Laravel, capables d'évoluer pour prendre en charge plus d'un milliard d'articles. Il est disponible dans plus de 30 langues et compte plus de 300 000 installations.

Configuration des tests

Pour tester Aimeos, nous avons commencé le test avec dix utilisateurs, mais nous avons dû diminuer le nombre d'utilisateurs car nous ne pouvions pas terminer le test avec la configuration par défaut.

Nous avons ensemencé la base de données avec 500 Mo de données.
La durée de notre test était de 10 minutes.

Nous avons utilisé :

  • Instance AWS EC2 c5.xlarge avec Debian 11 installé comme système d'exploitation,
  • Apache en tant que serveur web,
  • MariaDB 10.5 définie sur la configuration par défaut avec une taille de base de données de 500 Mo.

Configuration MySQL

La configuration utilisée pour Aimeos Laravel est la suivante :

Configuration optimisée pour Laravel Aimeos 500 Mo

query_cache_type=1
query_cache_size=134217728
query_cache_limit=16777216
query_cache_min_res_unit=4096
thread_cache_size=0
key_buffer_size=8388608
max_allowed_packet=1073741824
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
innodb_buffer_pool_size=805306368
max_heap_table_size=16777216
tmp_table_size=16777216
join_buffer_size=8388608
max_connections=151
table_open_cache=2048
table_definition_cache=1408
innodb_flush_log_at_trx_commit=1
innodb_log_file_size=201326592
innodb_log_buffer_size=16777216
innodb_write_io_threads=4
innodb_read_io_threads=4
innodb_file_per_table=1
innodb_flush_method=O_DIRECT
innodb_thread_concurrency=0
innodb_purge_threads=4
optimizer_search_depth=0
thread_handling=pool-of-threads
thread_pool_size=2
Copier après la connexion

Résultats des tests

Les résultats des tests d'Aimeos Laravel ont montré des améliorations spectaculaires des performances entre les configurations par défaut et optimisées.

L'optimisation de MySQL a entraîné une amélioration significative du Temps de réponse moyen du serveur, qui a été réduit de 1,4 seconde à moins de 800 millisecondes.

Le

Temps de réponse (latence) a diminué de 42 % et l'Utilisation moyenne du processeur de 86 %, tandis que les Requêtes par seconde ont augmenté de 291 %, passant de 12 à 35 requêtes par seconde.

Le graphique des résultats est disponible ci-dessous :

How MySQL Tuning Improves the Laravel Performance Temps de réponse (ms), configuration MySQL optimisée par Aimeos par rapport aux valeurs par défaut
How MySQL Tuning Improves the Laravel Performance Utilisation du processeur (%), configuration MySQL optimisée par Aimeos par rapport aux valeurs par défaut
How MySQL Tuning Improves the Laravel Performance Requêtes par seconde, configuration MySQL optimisée par Aimeos par rapport aux valeurs par défaut

Contributeurs de la communauté

Nous avons fait équipe avec les développeurs Laravel Gevorg Mkrtchyan et Sergey Sinitsa de la société Initlab pour enquêter sur cette ligne de questions et sommes très reconnaissants pour leur expertise.
Sergey a déployé Aimeos et Gevorg a préparé le code pour amorcer la base de données.

Conclusion

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

Le

Temps de réponse (latence) a chuté de 42 %, tandis que l'Utilisation du processeur a chuté de 86 %. Les Requêtes par seconde ont augmenté de 291 % dans Aimeos Laravel 500 Mo.

En conclusion, le réglage de MySQL est un aspect essentiel de la gestion des bases de données qui peut avoir un impact significatif sur les performances des applications Laravel. Des applications Web peu performantes peuvent entraîner une augmentation des temps de chargement des pages, un traitement lent des requêtes et une mauvaise expérience utilisateur, ce qui peut affecter négativement le référencement et les ventes. En optimisant les performances des applications Web avec le réglage MySQL, les entreprises et les organisations peuvent augmenter leurs ventes, les pages vues, les taux de conversion et les classements SEO.

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

Grâce à des outils comme Releem, les bases de données peuvent être automatiquement configurées 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!

source:dev.to
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!