La colonne tutorielle suivante de Pagoda vous présentera comment réaliser un réglage simple des performances de MySQL via le panneau Pagoda. J'espère que cela sera utile aux amis dans le besoin !
Lors du fonctionnement du site Web d'architecture PHP+MYSQL, divers problèmes de performances sont souvent rencontrés, tels que MySQL, PHP, CPU, E/S disque, cache, etc., parmi quels goulots d'étranglement MySQL sont les facteurs les plus courants et les plus difficiles à résoudre qui affectent les performances du site Web ; nous utilisons généralement des logiciels de mise en cache tels que Redis et Memcached pour mettre en cache le contenu, mais cela nécessite la prise en charge du programme du site Web. . Cependant, les programmes de sites Web les plus couramment utilisés ne prennent pas en charge ou ne peuvent pas parfaitement prendre en charge ces logiciels de mise en cache. Aujourd'hui, nous allons parler de la façon d'optimiser les performances de MySQL grâce à l'ajustement de la configuration de MySQL pour atténuer le problème de goulot d'étranglement de MySQL.
Préparation :
1. Panel Pagoda Linux version officielle 5.2.0+ (sortie le 20/09/2017) Version bêta 5.2.4+
2. MySQL 5 .x
Habituellement, le réglage de MySQL est divisé en les parties suivantes :
1. Le réglage des paramètres de configuration MySQL (doit être ajusté en fonction des conditions de fonctionnement du site Web)
2. Données Réglage de l'index de table Excellent (l'effet est évident, mais généralement les excellents programmes open source n'ont pas besoin d'être ajustés)
3. Réglage des instructions SQL (c'est ce que font les programmeurs ou les DBA)
Aujourd'hui dont nous parlons principalement Si nous utilisons les nouvelles fonctionnalités du panneau Pagoda pour régler les paramètres de configuration MySQL, regardons d'abord deux images :
(Image 1)
(Image 2)
Évidemment, (Figure 1) montre l'état d'exécution actuel de MySQL, (Figure 2) montre les principaux paramètres de configuration de MySQL
Interprétons ces deux images :
1. Nombre de connexions actives/pic
(Figure 1) La connexion active actuelle est 1, ce qui est la plus élevée depuis le démarrage du service MySQL. Le nombre de connexions est de 54 ; lorsque le nombre le plus élevé de connexions est proche ou égal à max_connections dans (Figure 2), max_connections doit être augmenté de manière appropriée. Il convient de noter qu'il n'est pas recommandé d'augmenter trop à la fois. de 50 à chaque fois et observez pendant un certain temps. Si cela ne suffit pas, continuez à augmenter.
2. Taux de réussite du cache de threads
Le taux de réussite du cache de threads dans (Figure 1) est de 99,78 %. Si cette valeur est inférieure à 90 %, il est recommandé d'augmenter le thread_cache_size dans ( Figure 2) de manière appropriée. Il est recommandé d'augmenter de 8 à chaque fois.
3. Taux de réussite de l'index
Le taux de réussite de l'index dans (Figure 1) est de 99,50 %. Si cette valeur est inférieure à 95 %, il est recommandé d'augmenter le key_buffer_size dans (Figure 2). ) de manière appropriée. Il est recommandé d'augmenter à chaque fois 64. Il est à noter que si votre base de données utilise le moteur Innodb, vous pouvez ignorer cette option
4. Taux de réussite de l'index Innodb
(Figure 1) Taux de réussite de l'index Innodb 100 %. Si cette valeur est inférieure à 95 %, il est recommandé d'augmenter innodb_buffer_pool_size dans (Figure 2) de manière appropriée. Il est recommandé de l'augmenter de 64 à chaque fois. la base de données n'utilise pas le moteur Innodb, vous pouvez ignorer cette option
5. Taux de réussite du cache de requêtes
Le cache de requêtes MySQL est une fonctionnalité controversée que je recommande personnellement lorsque vous utilisez un tel logiciel de mise en cache. comme Redis et Memcached, vous pouvez définir query_cache_size sur 0 dans (Figure 2). Lorsque vous n'utilisez pas de logiciel de mise en cache, que vous utilisez davantage de mémoire et que les goulots d'étranglement de la base de données sont évidents, vous pouvez essayer d'activer la mise en cache des requêtes. une fonction qui s'appuie fortement sur la structure de la table de données et l'optimisation des instructions SQL. Si la structure de la table de données et les instructions SQL ont été optimisées pour la mise en cache des requêtes, son effet est toujours très bon.
6. Créer des tables temporaires sur le disque
(Figure 1) La proportion de création de tables temporaires sur le disque est de 0,42%, ce qui montre que la plupart des tables temporaires sont créées en mémoire, pas trop. augmentez le coût des E/S du disque, il est recommandé d'augmenter la taille de tmp_cache_size dans (Figure 1) de manière appropriée lorsque la proportion est supérieure à 32 à chaque fois. abandonnez. Certains programmes open source n'ont pas spécifiquement optimisé les instructions SQL, donc un grand nombre de tables temporaires seront ouvertes pendant le fonctionnement, et quelle que soit la quantité de cache ajoutée, cela ne suffira pas.
7. Table ouverte
Lorsque la table ouverte dans (Figure 1) est proche ou égale à table_open_cache dans (Figure 2), table_open_cache peut être augmentée de manière appropriée, mais si elle est définie Il est probable que votre programme interrompe fréquemment la connexion MySQL. Il est recommandé que la valeur soit comprise entre 1024 et que la valeur maximale ne dépasse pas 2048.
8. Le montant de JOIN sans index et le montant de JOIN sans index
S'il n'est pas 0, vérifiez l'index du tableau de données En fait, tant qu'il n'y a pas de montée en flèche, par exemple, de combien cela augmente-t-il en une journée ? Des milliers peuvent généralement être ignorés. Après tout, il est plus approprié pour les programmeurs ou les administrateurs de base de données d'optimiser les index.
9. Nombre de fusions après tri
Si cette valeur augmente lentement, il est recommandé d'augmenter le sort_buffer_size dans (Figure 2) de manière appropriée. Il est recommandé de l'augmenter de 512 à chaque fois, mais le maximum ne doit pas dépasser 8192. Si cette valeur continue d'augmenter, augmentez-la. sort_buffer_size est inutile, alors abandonnez. C'est une option. La faute doit être imputée aux développeurs du programme.
10. Nombre de verrous de table
Si le serveur a une faible surcharge du processeur et verrouille les tables de manière folle, il est recommandé de convertir toutes les tables de données en innodb et de penser à sauvegarder avant la conversion.
11. Plan d'optimisation
Il s'agit d'un plan d'optimisation recommandé basé sur la taille de la mémoire. Il est uniquement recommandé de l'utiliser pour les valeurs de référence de base. Chaque élément de configuration doit être ajusté en fonction de la taille réelle. situation. .
Remarque : Après avoir enregistré la configuration des paramètres, celle-ci ne prendra pas effet immédiatement. N'oubliez pas de redémarrer le service MySQL.
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!