Cet article présente principalement les informations pertinentes sur les exemples d'optimisation MySQL dans Linux Les amis dans le besoin peuvent se référer à
Paire Linux Explication détaillée de MySQL. exemples d'optimisation
vim /etc/my.cnf Ce qui suit répertorie uniquement le contenu du paragraphe [mysqld] dans le fichier my.cnf. Le contenu des autres paragraphes a peu d'impact sur les performances d'exécution de. MySQL, donc pour le moment négligé.
[mysqld] port = 3306 serverid = 1 socket = /tmp/mysql.sock skip-locking
Évitez le verrouillage externe de MySQL, réduisez les risques d'erreurs et améliorez la stabilité.
skip-name-resolve
Désactiver MySQL pour effectuer la résolution DNS sur les connexions externes L'utilisation de cette option peut éliminer le temps que MySQL consacre à la résolution DNS. Il faut cependant noter que si cette option est activée, toutes les autorisations de connexion aux hôtes distants doivent utiliser des adresses IP, sinon MySQL ne pourra pas traiter normalement les demandes de connexion !
back_log = 384
La valeur du paramètre back_log indique combien de requêtes peuvent être stockées dans la pile dans un court laps de temps avant que MySQL ne cesse temporairement de répondre aux nouvelles requêtes. Si le système dispose de nombreuses connexions sur une courte période, vous devez augmenter la valeur de ce paramètre, qui spécifie la taille de la file d'attente d'écoute pour les connexions TCP/IP entrantes. Différents systèmes d'exploitation ont leurs propres limites quant à cette taille de file d'attente. Tenter de définir back_log une valeur supérieure à la limite de votre système d'exploitation n'aura aucun effet. La valeur par défaut est 50. Pour les systèmes Linux, il est recommandé de le définir sur un entier inférieur à 512.
key_buffer_size = 256M
key_buffer_size spécifie la taille du tampon utilisée pour index, augmentez-la pour de meilleures performances de traitement d'index. Pour les serveurs dotés d'une mémoire d'environ 4 Go, ce paramètre peut être défini sur 256 Mo ou 384 Mo. Remarque : Définir une valeur de paramètre trop grande réduira l'efficacité globale du serveur !
max_allowed_packet = 4M thread_stack = 256K table_cache = 128K sort_buffer_size = 6M
Requête la taille du tampon qui peut être utilisée lors du tri. Remarque : La mémoire allouée correspondant à ce paramètre est exclusive à chaque connexion. S'il y a 100 connexions, la taille totale du tampon de tri alloué est de 100 × 6 = 600 Mo. Par conséquent, il est recommandé de le définir sur 6-8M pour un serveur doté d'une mémoire d'environ 4 Go.
read_buffer_size = 4M
La taille du tampon qui peut être utilisée par les opérations de requête de lecture. Comme sort_buffer_size, la mémoire allouée correspondant à ce paramètre est également exclusive à chaque connexion.
join_buffer_size = 8M
La taille du tampon pouvant être utilisée par l'opération de requête conjointe Comme sort_buffer_size, la mémoire allouée correspondant à ce paramètre est également exclusive à chaque connexion.
myisam_sort_buffer_size = 64M table_cache = 512 thread_cache_size = 64 query_cache_size = 64M
Spécifie la taille du tampon de requête MySQL. Cela peut être observé dans la console MySQL. Si la valeur de Qcache_lowmem_prunes est très grande, cela indique que la mise en mémoire tampon est souvent insuffisante. Si la valeur de Qcache_hits est très grande, cela indique que le tampon de requête est utilisé très fréquemment. est petit, cela affectera l'efficacité. Ensuite, vous pouvez envisager de ne pas interroger le cache Qcache_free_blocks, si la valeur est très grande, cela indique qu'il y a de nombreux fragments dans le tampon.
tmp_table_size = 256M max_connections = 768
Spécifiez le nombre maximum de processus de connexion autorisés par MySQL. Si des messages d'erreur Too ManyConnections apparaissent souvent lors de l'accès au forum, vous devez augmenter la valeur de ce paramètre.
max_connect_errors = 10000000 wait_timeout = 10
Spécifiez la durée de connexion maximale pour une requête. Pour les serveurs avec environ 4 Go de mémoire, elle peut être définie sur 5-10.
thread_concurrency = 8
La valeur de ce paramètre est le nombre de processeurs logiques du serveur * 2. Dans cet exemple, le serveur dispose de 2 processeurs physiques, et chaque processeur physique prend en charge l'hyper-threading H.T, donc la valeur réelle est 4 *2=8
skip-networking
Activez cette option pour fermer complètement la méthode de connexion TCP/IP de MySQL Si le serveur WEB accède au serveur Base de données MySQL via une connexion à distance, faites-le. pas activer cette option ! Sinon, la connexion normale ne sera pas possible !
table_cache=1024
Plus la mémoire physique est grande, plus le paramètre est grand. La valeur par défaut est 2402, ajustez à 512-1024 pour une valeur optimale
innodb_additional_mem_pool_size=4M
La valeur par défaut est 2M
innodb_flush_log_at_trx_commit=1
Le définir sur 0 signifie attendre que la file d'attente innodb_log_buffer_size soit pleine avant de la stocker uniformément. La valeur par défaut est 1
innodb_log_buffer_size=2M
La valeur par défaut est 1M
innodb_thread_concurrency=8
Réglez-la sur. combien de processeurs votre serveur possède. Il est recommandé d'utiliser la valeur par défaut de 8
key_buffer_size=256M #默认为218,调到128最佳 tmp_table_size=64M #默认为16M,调到64-256最挂 read_buffer_size=4M #默认为64K read_rnd_buffer_size=16M #默认为256K sort_buffer_size=32M #默认为256K thread_cache_size=120 #默认为60 query_cache_size=32M
Il convient de noter :
De nombreuses situations nécessitent des spécificités. analyse
1. Si Key_reads est trop grand, vous devez augmenter le Key_buffer_size dans my.cnf et conserver Key_reads/Key_read_requests au moins 1/100.
2. Si Qcache_lowmem_prunes est très grand, augmentez la valeur de Query_cache_size.
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!