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.
L'amélioration des performances des applications grâce au réglage est mieux obtenue avec une approche globale qui aborde les domaines suivants :
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.
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 :
Nous avons publié les tests JMeter, le statut MySQL et les variables MySQL lors des tests sur Github.
Les métriques que nous avons examinées au cours de cette recherche sont :
Nous avons collecté des métriques Utilisation du processeur et Requêtes par seconde pour comparer la charge de travail.
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.
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é :
La configuration utilisée pour Aimeos Laravel est la suivante :
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
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.
LeTemps 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 :
Temps de réponse (ms), configuration MySQL optimisée par Aimeos par rapport aux valeurs par défaut
Utilisation du processeur (%), configuration MySQL optimisée par Aimeos par rapport aux valeurs par défaut
Requêtes par seconde, configuration MySQL optimisée par Aimeos par rapport aux valeurs par défaut
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.
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.
LeTemps 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!