|   | |
|     | |
|  |  10.1 Optimisation des valeurs du serveur
Vous pouvez accéder aux tailles par défaut des buffers de  shell> mysqld --help 
Cette commande produit la liste de toutes les options et les variables de  Possible variables for option --set-variable (-O) are: back_log current value: 5 connect_timeout current value: 5 delayed_insert_timeout current value: 300 delayed_insert_limit current value: 100 delayed_queue_size current value: 1000 flush_time current value: 0 join_buffer_size current value: 131072 key_buffer_size current value: 1048540 long_query_time current value: 10 max_allowed_packet current value: 1048576 max_connections current value: 100 max_connect_errors current value: 10 max_delayed_threads current value: 20 max_heap_table_size current value: 16777216 max_join_size current value: 4294967295 max_sort_length current value: 1024 max_tmp_tables current value: 32 net_buffer_length current value: 16384 record_buffer current value: 131072 sort_buffer current value: 2097116 table_cache current value: 64 tmp_table_size current value: 1048576 thread_stack current value: 131072 wait_timeout current value: 28800 
Si vous avez un serveur  shell> mysqladmin variables 
Toutes les options dont détaillées ci-dessous. Les tailles des buffers et des piles, les longueurs sont toutes données en octets. Vous pouvez ajouter le suffixe ``K'' ou ``M'' pour indiquer kilo-octets or mégaoctets. Par exemple,  back_logindique le nombre de connexion qui sont mise en attente, avant que MySQL momentanément cesse de réponse à de nouvelles requêtes. Augmentez la valeur pour accepter un grand nombre de connexions dans un délais très court. En d'autres termes, cette valeur correspond à la taille de la file d'attente de connexions TCP/IP. Votre système d'exploitation a sa propre limite. Sous Unix, le manuel donne plus de détails avec l'entréelisten(2).Vérifier la documentation de votre OS pour connaître la valeur de cette variable. Affecter àback_logune valeur plus grande que le maximum accepté par le système sera inefficace.mysqldne réponde une erreurBad handshake.INSERT DELAYED: si les commandesINSERTsont trop longues, le threadINSERT DELAYEDse finira.delayed_insert_limitlignes, le handlerINSERT DELAYEDvérifiera qu'il n'y a aucune commandeSELECTen attente. Si c'est le cas, le handlerINSERT DELAYEDsera exécuté avant de continuer.INSERT DELAYED. Si la queue est pleine, tout client qui émet une commandeINSERT DELAYEDdevra attendre qu'une place se libère dans la queue.flush_timesecondes, toutes les tables seront fermées.(pour libérer des ressources, et synchroniser les tables sur le disque).key_bufferest la taille des buffers de bloc d'index. Cela permettra d'accélerer le traitement des commandesDELETEouINSERTsur une table avec de nombreux index. Pour accélerer encore plus la commande, reportez vous à la sectionLOCK TABLEStimesecondes, le compteur deslow_queriessera incrémentés.net_buffer_lengthoctets, mais il peut croître jusqu'à une taille demax_allowed_packetoctets, au besoin. Cette valeur par défaut est trop petite pour gérer de gros paquets (et probablement ceux-ci sont érronnés). Il vaut mieux augmenter la taille cette colonne pour pouvoir gérer des objets deBLOB: il faudrait que la valeur de cette option soit aussi grande de le plus grandBLOBque vous voulez utiliser.mysqld. Voir ci-après pour plus de détails sur les pointeurs de fichiersmax_connect_errorsconnexions interrompues de la part d'un même hote, toutes les tentatives ultérieures de connexions seront bloquées. Vous pouvez aussi débloquer les hôtes avec la commandeFLUSH HOSTS.INSERT DELAYED à max_delayed_threads. Si vous tentez d'insérez des informations dans une nouvelle table après que tous les threadsINSERT DELAYEDsoient utilisés, l'attributDELAYEDsera ignoré.max_join_sizelignes retourne une erreur. Affectez une limite si vos utilisateurs prennent la mauvaise habitude d'exécuter des regroupements de plusieurs millions de lignes.BLOBouTEXT(Seuls lestmax_sort_lengthpremiers octets de chaque valeurs seront utilisés, le reste sera ignoré).max_allowed_packetoctets.sort_bufferoctets. Augmentez cette valeur pour accélerer les clausesORDER BYouGROUP BY.   18.5  Où MySQL enregistre les fichiers temporairesmysqlda besoin. MySQL a besoin de deux pointeurs de fichiers pour chaque table. Voir ci-dessous les remarques à propos de la limite du nombre de pointeur de fichier. Pour des détails concernant le cache des tables,   10.8  Comment MySQL ouvre et ferme les tables.The table nom_table is full. Augmentez la valeur detmp_table_sizepour réaliser des requêtesGROUP BYplus compliquées.crash-medépendent de cette valeur. La valeur par défaut est généralement suffisante.Benchmarks.
table_cache,  
shell> safe_mysqld -O key_buffer=16M -O table_cache=128 \
           -O sort_buffer=4M -O record_buffer=1M &
Si vous avez peu de mémoire et beaucoup de connexion, utilisez une configuration telle que : 
shell> safe_mysqld -O key_buffer=512k -O sort_buffer=100k \
           -O record_buffer=100k &
voire même : 
shell> safe_mysqld -O key_buffer=512k -O sort_buffer=16k \
           -O table_cache=32 -O record_buffer=8k -O net_buffer=1K &
Si le nombre de connexion est vraiment très grand, le système va commencer à swapper, à moins que  
NB : si vous changez une option de  Pour voir si les changement de paramètres ont été pris en compte, utilisez la commande : shell> mysqld -O key_buffer=32m --help 
Assurez vous que l'option  |