Maison > Opération et maintenance > exploitation et maintenance Linux > Une introduction détaillée sur la façon d'optimiser MySQL sous Linux

Une introduction détaillée sur la façon d'optimiser MySQL sous Linux

黄舟
Libérer: 2017-06-04 11:26:42
original
1749 Les gens l'ont consulté

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
Copier après la connexion

Évitez le verrouillage externe de MySQL, réduisez les risques d'erreurs et améliorez la stabilité.

skip-name-resolve
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

La valeur par défaut est 2M

innodb_flush_log_at_trx_commit=1
Copier après la connexion

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
Copier après la connexion

La valeur par défaut est 1M

innodb_thread_concurrency=8
Copier après la connexion

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
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
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