


MySQL - Une introduction détaillée aux 10 configurations qui doivent être ajustées pour MySQL nouvellement installé
Êtes-vous toujours inquiet du service mysql nouvellement installé et ne savez pas quelles configurations par défaut modifier ? Mysql a plus de 100 paramètres réglables. Lequel des paramètres les plus importants doit être ajusté immédiatement ! >
Cet article présente principalement 10 configurations qui doivent être ajustées pour l'optimisation MySQL. L'utilisation de ces méthodes peut vous permettre d'obtenir rapidement une configuration MySQL robuste. Les amis dans le besoin peuvent se référer à ce qui suit :
Quand nous y sommes. Lorsqu'ils sont embauchés pour surveiller les performances de MySQL, les gens s'attendent à ce que nous examinions la configuration de MySQL et fassions des suggestions d'améliorations. De nombreuses personnes sont surprises lorsque nous leur suggérons de modifier seulement quelques paramètres, même s'il existe des centaines d'options de configuration. Le but de cet article est de vous donner une liste très importante d’éléments de configuration.
Nous avons donné ce conseil sur le blog il y a quelques années, mais le monde de MySQL évolue si vite
Écrit avant de commencer...
Même si Même ! les personnes expérimentées peuvent commettre des erreurs, ce qui peut causer beaucoup de problèmes. Alors avant d'appliquer aveuglément ces recommandations, rappelez-vous ce qui suit :
Ne modifiez qu'un seul paramètre à la fois ! C'est le seul moyen de tester si un changement est bénéfique.
La plupart des configurations peuvent être modifiées au moment de l'exécution à l'aide de SET GLOBAL. C'est un moyen très pratique d'annuler rapidement les modifications en cas de problème. Cependant, pour le rendre permanent, vous devez apporter des modifications au fichier de configuration.
Une modification ne prend pas effet même après le redémarrage de MySQL
Veuillez vous assurer que vous utilisez le bon fichier de configuration ? Veuillez vous assurer de placer la configuration dans la bonne zone (toutes les configurations mentionnées dans cet article appartiennent à [mysqld])
Le serveur ne peut pas démarrer après avoir modifié une configuration : Veuillez vous assurer d'utiliser la bonne unité de configuration.
Par exemple, l'unité de innodb_buffer_pool_size est Mo et max_connection n'a pas d'unité.
Ne pas avoir d'éléments de configuration en double dans un fichier de configuration. Si vous souhaitez suivre les modifications, utilisez le contrôle de version.
N'utilisez pas de calculs naïfs, tels que "Maintenant, mon serveur a deux fois plus de mémoire, je dois donc modifier toutes les valeurs pour doubler la valeur précédente."
1. Configuration de baseVous devez vérifier fréquemment les 3 éléments de configuration suivants. Sinon, des problèmes pourraient survenir rapidement.
innodb_buffer_pool_size :C'est la première option que vous devez définir après l'installation d'InnoDB.
Le pool de mémoire tampon est l'endroit où les données et les index sont mis en cache : plus la valeur est grande, mieux c'est, garantissant que vous utilisez la mémoire au lieu du disque dur pour la plupart des opérations de lecture. Les valeurs typiques sont 5 à 6 Go (mémoire de 8 Go), 20 à 25 Go (mémoire de 32 Go), 100 à 120 Go (mémoire de 128 Go).
innodb_log_file_size :C'est la taille du journal de rétablissement. La journalisation redo est utilisée pour garantir que les opérations d'écriture sont rapides et fiables et pour récupérer après un crash.
Jusqu'à MySQL 5.1, il était difficile à régler car d'une part vous vouliez qu'il soit plus grand pour améliorer les performances, et d'autre part vous vouliez le rendre plus petit pour récupérer plus rapidement après un crash. Heureusement, depuis MySQL 5.5, les performances de récupération après incident ont été considérablement améliorées, de sorte que vous puissiez bénéficier en même temps de performances d'écriture et de récupération après incident élevées. Jusqu'à MySQL 5.5, la taille totale du journal redo était limitée à 4 Go (il peut y avoir 2 fichiers journaux par défaut). Cela a été amélioré dans MySQL 5.6.
Définissez innodb_log_file_size sur 512 Mo depuis le début (il y a donc 1 Go de journal de rétablissement), ce qui vous donnera suffisamment d'espace pour les opérations d'écriture. Si vous savez que votre application a besoin d'écrire fréquemment des données et que vous utilisez MySQL 5.6, vous pouvez la définir sur 4G dès le début.
max_connections :Si vous voyez souvent l'erreur « Trop de connexions », c'est parce que la valeur de max_connections est trop faible. Ceci est très courant car l'application ne ferme pas correctement les connexions à la base de données et vous avez besoin d'une valeur supérieure aux 151 connexions par défaut. Un inconvénient majeur lorsque la valeur max_connection est définie sur une valeur élevée (par exemple 1 000 ou plus) est que le serveur ne répond plus lors de l'exécution de 1 000 transactions actives ou plus. L’utilisation du pooling de connexions dans votre application ou du pooling de processus dans MySQL peut aider à résoudre ce problème.
2. Configuration d'InnoDBÀ partir de la version 5.5 de MySQL, InnoDB est le moteur de stockage par défaut et il est bien plus utilisé que tout autre moteur de stockage. C'est pourquoi il doit être configuré avec soin.
innodb_file_per_table :Ce paramètre indique à InnoDB s'il doit stocker les données et les index pour toutes les tables dans un espace table partagé (innodb_file_per_table = OFF) ou pour chaque table. les données sont placées dans un fichier .ibd séparé (innodb_file_per_table = ON). Un fichier par table vous permet de récupérer de l'espace disque lors de la suppression, de la troncature ou de la reconstruction de tables. Cela est également nécessaire pour certaines fonctionnalités avancées, telles que la compression des données. Mais cela n’apporte aucun gain de performances. Le scénario principal dans lequel vous ne voulez pas d'un fichier par table est si vous avez un très grand nombre de tables (comme 10 000).
Dans MySQL 5.6, la valeur par défaut de cette propriété est ON, donc dans la plupart des cas, vous n'avez rien à faire. Avec les versions précédentes, vous deviez définir cette propriété sur ON avant de charger les données, car elle n'affectait que les tables nouvellement créées.
innodb_flush_log_at_trx_commit :
La valeur par défaut est 1, indiquant qu'InnoDB prend entièrement en charge les fonctionnalités ACID. Cette valeur est la plus appropriée lorsque votre principale préoccupation est la sécurité des données, comme sur un nœud maître. Mais pour les systèmes avec des vitesses de disque (lecture et écriture) lentes, cela entraînera une surcharge énorme, car chaque fois que le vidage des modifications dans le journal de rétablissement nécessite des fsync supplémentaires. Définir sa valeur sur 2 entraînera une valeur moins fiable car la transaction soumise n'est vidée dans le journal de rétablissement qu'une fois par seconde, mais cela est acceptable pour certains scénarios, tels que le nœud de sauvegarde du nœud principal. Cette valeur est acceptable. . de. Une valeur de 0 est plus rapide, mais peut entraîner une certaine perte de données en cas de panne du système : s'applique uniquement aux nœuds de sauvegarde.
innodb_flush_method :
Cette configuration détermine la manière dont les données et les journaux sont écrits sur le disque dur. De manière générale, si vous disposez d'un contrôleur RAID matériel et que son cache indépendant utilise un mécanisme de réécriture et dispose d'une protection contre les pannes de batterie, il doit alors être défini sur O_DIRECT ; sinon, dans la plupart des cas, il doit être défini sur fdatasync (valeur par défaut) ; ). sysbench est un excellent outil pour vous aider à choisir cette option.
innodb_log_buffer_size :
Cette configuration détermine le cache alloué pour les transactions qui n'ont pas encore été exécutées. La valeur par défaut (1 Mo) est généralement suffisante, mais si votre transaction contient des objets binaires volumineux ou des champs de texte volumineux, ce cache se remplira rapidement et déclenchera des opérations d'E/S supplémentaires. Regardez la variable d'état Innodb_log_waits, si elle n'est pas 0, augmentez innodb_log_buffer_size.
3. Autres paramètres
query_cache_size :
le cache de requêtes (cache de requêtes) est un goulot d'étranglement bien connu, même Cela est également vrai lorsqu'il n'y a pas beaucoup de concurrence.
La meilleure option est de le désactiver depuis le début, de définir query_cache_size = 0 (maintenant la valeur par défaut dans MySQL 5.6) et d'utiliser d'autres méthodes pour accélérer les requêtes : optimiser les index, ajouter des copies pour répartir la charge ou activer cache supplémentaire (tel que Memcache ou Redis). Si vous avez activé le cache de requêtes pour votre application et que vous n'avez remarqué aucun problème, le cache de requêtes peut vous être utile. C'est une chose à laquelle il faut faire attention si vous souhaitez le désactiver.
log_bin :
Si vous souhaitez que le serveur de base de données agisse comme un nœud de sauvegarde pour le nœud maître, il est alors nécessaire d'activer le journal binaire. Si vous faites cela, n'oubliez pas de définir server_id sur une valeur unique. Même avec un seul serveur, cette opération (activer la journalisation binaire) est utile si vous souhaitez effectuer une récupération de données à un moment donné : restaurez à partir de votre sauvegarde la plus récente (sauvegarde complète) et appliquez les modifications dans le journal binaire (sauvegarde incrémentielle). . Une fois créé, le journal binaire est enregistré définitivement. Ainsi, si vous ne souhaitez pas manquer d'espace disque, vous pouvez utiliser PURGE BINARY LOGS pour purger les anciens fichiers, ou définir expire_logs_days pour spécifier combien de jours après lesquels les journaux seront automatiquement purgés.
La journalisation des journaux binaires n'est pas sans surcharge, il est donc recommandé de désactiver cette option si vous n'en avez pas besoin sur un nœud réplica qui n'est pas le nœud principal.
skip_name_resolve :
Lorsque le client se connecte au serveur de base de données, le serveur effectue la résolution du nom d'hôte, et lorsque le DNS est lent, l'établissement d'une connexion sera également lent. Il est donc recommandé de désactiver l'option skip_name_resolve lors du démarrage du serveur sans effectuer de recherche DNS. La seule limitation est que seules les adresses IP peuvent être utilisées ultérieurement dans les instructions GRANT. Des précautions doivent donc être prises lors de l'ajout de ce paramètre à un système existant.
Résumé
Bien sûr, il existe d'autres paramètres qui peuvent fonctionner, en fonction de votre charge ou de votre matériel : mémoire lente et disque rapide, simultanéité élevée et écriture intensive sous charge, vous aurez besoin d'ajustements spéciaux. Cependant, l'objectif ici est que vous puissiez obtenir rapidement une configuration MySQL robuste sans passer trop de temps à ajuster certains paramètres MySQL insignifiants ou à lire la documentation pour savoir quels paramètres sont importants pour vous.
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Vous pouvez ouvrir PHPMYADMIN via les étapes suivantes: 1. Connectez-vous au panneau de configuration du site Web; 2. Trouvez et cliquez sur l'icône PHPMYADMIN; 3. Entrez les informations d'identification MySQL; 4. Cliquez sur "Connexion".

MySQL est un système de gestion de la base de données relationnel open source, principalement utilisé pour stocker et récupérer les données rapidement et de manière fiable. Son principe de travail comprend les demandes des clients, la résolution de requête, l'exécution des requêtes et les résultats de retour. Des exemples d'utilisation comprennent la création de tables, l'insertion et la question des données et les fonctionnalités avancées telles que les opérations de jointure. Les erreurs communes impliquent la syntaxe SQL, les types de données et les autorisations, et les suggestions d'optimisation incluent l'utilisation d'index, les requêtes optimisées et la partition de tables.

La position de MySQL dans les bases de données et la programmation est très importante. Il s'agit d'un système de gestion de base de données relationnel open source qui est largement utilisé dans divers scénarios d'application. 1) MySQL fournit des fonctions efficaces de stockage de données, d'organisation et de récupération, en prenant en charge les systèmes Web, mobiles et de niveau d'entreprise. 2) Il utilise une architecture client-serveur, prend en charge plusieurs moteurs de stockage et optimisation d'index. 3) Les usages de base incluent la création de tables et l'insertion de données, et les usages avancés impliquent des jointures multiples et des requêtes complexes. 4) Des questions fréquemment posées telles que les erreurs de syntaxe SQL et les problèmes de performances peuvent être déboguées via la commande Explication et le journal de requête lente. 5) Les méthodes d'optimisation des performances comprennent l'utilisation rationnelle des indices, la requête optimisée et l'utilisation des caches. Les meilleures pratiques incluent l'utilisation des transactions et des acteurs préparés

MySQL est choisi pour ses performances, sa fiabilité, sa facilité d'utilisation et son soutien communautaire. 1.MySQL fournit des fonctions de stockage et de récupération de données efficaces, prenant en charge plusieurs types de données et opérations de requête avancées. 2. Adoptez l'architecture client-serveur et plusieurs moteurs de stockage pour prendre en charge l'optimisation des transactions et des requêtes. 3. Facile à utiliser, prend en charge une variété de systèmes d'exploitation et de langages de programmation. 4. Avoir un solide soutien communautaire et fournir des ressources et des solutions riches.

Apache se connecte à une base de données nécessite les étapes suivantes: Installez le pilote de base de données. Configurez le fichier web.xml pour créer un pool de connexion. Créez une source de données JDBC et spécifiez les paramètres de connexion. Utilisez l'API JDBC pour accéder à la base de données à partir du code Java, y compris l'obtention de connexions, la création d'instructions, les paramètres de liaison, l'exécution de requêtes ou de mises à jour et de traitement des résultats.

Le processus de démarrage de MySQL dans Docker se compose des étapes suivantes: Tirez l'image MySQL pour créer et démarrer le conteneur, définir le mot de passe de l'utilisateur racine et mapper la connexion de vérification du port Créez la base de données et l'utilisateur accorde toutes les autorisations sur la base de données

L'installation de MySQL sur CENTOS implique les étapes suivantes: Ajout de la source MySQL YUM appropriée. Exécutez la commande YUM Install MySQL-Server pour installer le serveur MySQL. Utilisez la commande mysql_secure_installation pour créer des paramètres de sécurité, tels que la définition du mot de passe de l'utilisateur racine. Personnalisez le fichier de configuration MySQL selon les besoins. Écoutez les paramètres MySQL et optimisez les bases de données pour les performances.

Le rôle principal de MySQL dans les applications Web est de stocker et de gérer les données. 1.MySQL traite efficacement les informations utilisateur, les catalogues de produits, les enregistrements de transaction et autres données. 2. Grâce à SQL Query, les développeurs peuvent extraire des informations de la base de données pour générer du contenu dynamique. 3.MySQL fonctionne basé sur le modèle client-serveur pour assurer une vitesse de requête acceptable.
