Services webmasters
Partenaires
Jeux concours gratuits
 
Réglage du système, au moment de la compilation, et paramètres du démarrage
<<<
Réglage des paramètres du serveur Influences de la compilation et des liaisons sur la vitesse de MySQL
>>>

5.5 Optimisation du serveur MySQL
5 Optimisation de MySQL
 Manuel de Référence MySQL 4.1 : Version Française

Réglage du système, au moment de la compilation, et paramètres du démarrage
->Réglage des paramètres du serveur
Influences de la compilation et des liaisons sur la vitesse de MySQL
Comment MySQL gère la mémoire
Comment MySQL utilise le DNS
Syntaxe de SET

5.5.2 Réglage des paramètres du serveur

Vous pouvez obtenir les tailles par défaut des tampons du serveur mysqld avec la commande:

shell> mysqld --help
Cette commande génère une liste de toutes les options de mysqld et des variables configurables. Cette sortie comprend les valeurs par défaut et ressemble à cela:

Possible variables for option --set-variable (-O) are:
back_log                 current value: 5
bdb_cache_size           current value: 1048540
binlog_cache_size        current value: 32768
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
interactive_timeout      current value: 28800
join_buffer_size         current value: 131072
key_buffer_size          current value: 1048540
lower_case_table_names   current value: 0
long_query_time          current value: 10
max_allowed_packet       current value: 1048576
max_binlog_cache_size    current value: 4294967295
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
max_write_lock_count     current value: 4294967295
myisam_sort_buffer_size  current value: 8388608
net_buffer_length        current value: 16384
net_retry_count          current value: 10
net_read_timeout         current value: 30
net_write_timeout        current value: 60
read_buffer_size         current value: 131072
record_rnd_buffer_size   current value: 131072
slow_launch_time         current value: 2
sort_buffer              current value: 2097116
table_cache              current value: 64
thread_concurrency       current value: 10
tmp_table_size           current value: 1048576
thread_stack             current value: 131072
wait_timeout             current value: 28800
Il est à noter que --set-variable n'est plus utile depuis MySQL 4.0, et on peut utiliser --var=option directement.

Si un serveur mysqld est en cours d'exécution, vous pouvez voir les valeurs que les variables utilisent réellement en exécutant la commande :


shell> mysqladmin variables
Vous pouvez trouver une description complète de toutes les variables dans la section SHOW VARIABLES de ce manuel. SHOW VARIABLES .

Vous pouvez aussi voir des statistiques sur un serveur en cours d'exécution en utilisant la commande SHOW STATUS . SHOW STATUS .

MySQL utilise des algorithmes très extensibles, donc vous pouvez utiliser très peu de mémoire. Si malgré tout vous fournissez plus de mémoire à MySQL, vous obtiendrez également de meilleures performances.

Les deux variables les plus importantes au moment du réglage d'un serveur MySQL sont key_buffer_size et table_cache . Vous devriez vous assurer que celles sont sont bien paramétrées avant de modifier les autres variables.

Si vous avez beaucoup de mémoire (>=256Mo) et beaucoup de tables, et que vous désirez des performances maximales avec un faible de nombre de clients, vous devriez essayer quelque chose cela:

shell> safe_mysqld -O key_buffer=64M -O table_cache=256 \
           -O sort_buffer=4M -O read_buffer_size=1M &
Si vous n'avez que 128Mo et seulement quelques tables, mais que vous demandez beaucoup de classements, vous pouvez essayer cela :

shell> safe_mysqld -O key_buffer=16M -O sort_buffer=1M
Si vous avez peu de mémoire et beaucoup de connections, essayez cela:

shell> safe_mysqld -O key_buffer=512k -O sort_buffer=100k \
           -O read_buffer_size=100k &
Ou encore:

shell> safe_mysqld -O key_buffer=512k -O sort_buffer=16k \
           -O table_cache=32 -O read_buffer_size=8k -O net_buffer_length=1K &
Si vous utilisez GROUP BY ou ORDER BY sur des fichiers de taille supérieure à la mémoire disponible, vous devriez augmenter la valeur de record_rnd_buffer pour accélérer la lecture des lignes après que le classement ait été fait.

A l'installation de MySQL, un répertoire support-files est créé, et contient plusieurs exemples de fichiers my.cnf : my-huge.cnf , my-large.cnf , my-medium.cnf et my-small.cnf . Vous pouvez les utiliser comme base pour optimiser votre système.

Si vous avez vraiment beaucoup de connections, des problèmes peuvent apparaître avec le fichier d'échange si mysqld n'a pas été configuré pour utiliser peu de mémoire pour chaque connexion. mysqld fonctionne mieux si vous avec suffisamment de mémoire pour toutes les connections, bien sûr !

Notez que si vous changez une option de mysqld , elle ne prendra effet qu'au prochain démarrage du serveur.

Pour voir les effets d'un changement de paramètre, essayez quelque chose comme ca:

shell> mysqld -O key_buffer=32m --help
Assurez vous bien de la présence de l'option --help en fin de ligne; si ce n'est pas le cas, les options listées après dans la ligne de commande ne seront pas prises en compte à la sortie.

<< Réglage des paramètres du serveur >>
Réglage du système, au moment de la compilation, et paramètres du démarrage Optimisation du serveur MySQL Influences de la compilation et des liaisons sur la vitesse de MySQL
Services webmasters
Les manuels
 
CoursPHP.com - Reproduction interdite -