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_log indique 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ée listen(2). Vérifier la documentation de votre OS pour connaître la valeur de cette variable. Affecter à back_log une valeur plus grande que le maximum accepté par le système sera inefficace.
mysqld ne réponde une erreur Bad handshake .
INSERT DELAYED : si les commandes INSERT sont trop longues, le thread INSERT DELAYED se finira.
delayed_insert_limit lignes, le handler INSERT DELAYED vérifiera qu'il n'y a aucune commande SELECT en attente. Si c'est le cas, le handler INSERT DELAYED sera exécuté avant de continuer.
INSERT DELAYED . Si la queue est pleine, tout client qui émet une commande INSERT DELAYED devra attendre qu'une place se libère dans la queue.
flush_time secondes, toutes les tables seront fermées.(pour libérer des ressources, et synchroniser les tables sur le disque).
key_buffer est la taille des buffers de bloc d'index. Cela permettra d'accélerer le traitement des commandes DELETE ou INSERT sur une table avec de nombreux index. Pour accélerer encore plus la commande, reportez vous à la section LOCK TABLES
time secondes, le compteur de slow_queries sera incrémentés.
net_buffer_length octets, mais il peut croître jusqu'à une taille de max_allowed_packet octets, 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 de BLOB : il faudrait que la valeur de cette option soit aussi grande de le plus grand BLOB que vous voulez utiliser.
mysqld . Voir ci-après pour plus de détails sur les pointeurs de fichiers
max_connect_errors connexions 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 commande FLUSH HOSTS .
INSERT DELAYED à max_delayed_threads . Si vous tentez d'insérez des informations dans une nouvelle table après que tous les threads INSERT DELAYED soient utilisés, l'attribut DELAYED sera ignoré.
max_join_size lignes retourne une erreur. Affectez une limite si vos utilisateurs prennent la mauvaise habitude d'exécuter des regroupements de plusieurs millions de lignes.
BLOB ou TEXT (Seuls lest max_sort_length premiers octets de chaque valeurs seront utilisés, le reste sera ignoré).
max_allowed_packet octets.
sort_buffer octets. Augmentez cette valeur pour accélerer les clauses ORDER BY ou GROUP BY . 18.5 Où MySQL enregistre les fichiers temporaires
mysqld a 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 de tmp_table_size pour réaliser des requêtes GROUP BY plus compliquées.
crash-me dé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 |