Le serveur entretient de nombreuses variables système qui
indiquent comment il est configuré. Toutes les variables ont
des valeurs par défaut. Elles peuvent être configuré au
lancement du serveur, avec les options de ligne de commande, ou
bien durant l'exécution, avec la commande
SET
.
Depuis MySQL version 4.0.3, le serveur mysqld
entretient deux types de variables. Les variables globales, qui
affectent les opérations générales du serveur. Et les
variables de session qui affectent les comportements individuels
des connexions.
Lorsque mysqld
démarre, toutes les variables
globales sont initialisées à partir des arguments passés en
ligne de commande et des fichiers de configuration. Vous pouvez
changer ces valeurs avec la commande SET
GLOBAL
. Lorsqu'un nouveau thread est créé, les
variables spécifiques aux threads sont initialisées à partir
des variables globales et ne changeront pas même si vous
utilisez la commande SET GLOBAL var_name
.
Pour changer une variable globale, vous devez avoir les droits
de SUPER
.
Le serveur entretient aussi un jeu de variables de session pour
chaque client qui se connecte. Les variables de session du
serveur sont initialisées au moment de la connexion, en
utilisant les valeurs correspondantes des variables globales.
Pour les variables de session qui sont dynamiques, le client
peut les changer avec la commande SET SESSION
var_name
. Modifier une variable de session ne requiert
aucun droit spécifique, mais le client ne modifiera le
comportement du serveur que pour sa connexion, et non pour les
connexions des autres.
Une modification de variable globale est visible par tous les
clients qui accèdent aux variables globales. Cependant, elle
n'affectera les connexions des clients que pour les nouvelles
connexions. Les variables de sessions déjà en court
continueront à fonctionner avec la même configuration,
jusqu'à leur déconnexion. Même le client qui a émis la
commande SET GLOBAL
ne verra aucun
changement.
Lorsque vous modifiez une variable avec une option de
démarrage, les valeurs de variables peuvent être spécifiées
avec le suffixe K
, M
ou
G
, pour indiquer des kilo-octets, des
megaoctets ou des gigaoctets. Par exemple, pour lancer le
serveur avec une taille de buffer de clé de 16 Mo, vous pouvez
utiliser :
mysqld --key_buffer_size=16M
Avant MySQL 4.0, vous deviez utiliser la syntaxe suivante :
mysqld --set-variable=key_buffer_size=16M
La lettre de suffixe peut être en majuscule ou en minuscule :
16M
et 16m
sont
équivalents.
Durant l'exécution, utilisez la commande SET
pour donner de nouvelles valeurs aux variables système. Dans ce
contexte, les lettres de suffixes ne pourront pas être
utilisées. Leur valeur peut être calculée avec l'expression
suivante :
mysql> SET sort_buffer_size = 10 * 1024 * 1024;
Pour spécifier explicitement si vous voulez modifier une
variable globale ou une variable de session, utilisez les
options GLOBAL
et
SESSION
:
mysql>SET GLOBAL sort_buffer_size = 10 * 1024 * 1024;
mysql>SET SESSION sort_buffer_size = 10 * 1024 * 1024;
Si cette option est omise, la variable de session sera modifiée.
Les variables qui peuvent être modifiées durant l'exécution sont listées dans la section Section 5.2.3.1, « Variables système dynamiques ».
Si vous voulez restreindre le maximum possible d'une variable
système, modifiée avec SET
, vous pouvez
spécifier ce maximum avec les options de la forme
--maximum-var_name
au lancement du serveur. Par
exemple, pour éviter que la valeur de
query_cache_size
dépasse 32 Mo, utilisez
l'option --maximum-query_cache_size=32M
. Cette
fonctionnalité est disponible depuis MySQL 4.0.2.
Vous pouvez découvrir les variables système et leur valeur
avec la commande SHOW VARIABLES
. Voyez
Section 9.4, « Variables système » pour plus d'informations.
mysql> SHOW VARIABLES;
+---------------------------------+------------------------------+
| Variable_name | Value |
+---------------------------------+------------------------------|
| back_log | 50 |
| basedir | /usr/local/mysql |
| bdb_cache_size | 8388572 |
| bdb_home | /usr/local/mysql |
| bdb_log_buffer_size | 32768 |
| bdb_logdir | |
| bdb_max_lock | 10000 |
| bdb_shared_data | OFF |
| bdb_tmpdir | /tmp/ |
| bdb_version | Sleepycat Software: ... |
| binlog_cache_size | 32768 |
| bulk_insert_buffer_size | 8388608 |
| character_set | latin1 |
| character_sets | latin1 big5 czech euc_kr |
| concurrent_insert | ON |
| connect_timeout | 5 |
| convert_character_set | |
| datadir | /usr/local/mysql/data/ |
| default_week_format | 0 |
| delay_key_write | ON |
| delayed_insert_limit | 100 |
| delayed_insert_timeout | 300 |
| delayed_queue_size | 1000 |
| flush | OFF |
| flush_time | 0 |
| ft_boolean_syntax | + -><()~*:""&| |
| ft_max_word_len | 84 |
| ft_min_word_len | 4 |
| ft_query_expansion_limit | 20 |
| ft_stopword_file | (built-in) |
| have_bdb | YES |
| have_innodb | YES |
| have_isam | YES |
| have_openssl | YES |
| have_query_cache | YES |
| have_raid | NO |
| have_symlink | DISABLED |
| init_file | |
| innodb_additional_mem_pool_size | 1048576 |
| innodb_buffer_pool_size | 8388608 |
| innodb_data_file_path | ibdata1:10M:autoextend |
| innodb_data_home_dir | |
| innodb_fast_shutdown | ON |
| innodb_file_io_threads | 4 |
| innodb_flush_log_at_trx_commit | 1 |
| innodb_flush_method | |
| innodb_force_recovery | 0 |
| innodb_lock_wait_timeout | 50 |
| innodb_log_arch_dir | |
| innodb_log_archive | OFF |
| innodb_log_buffer_size | 1048576 |
| innodb_log_file_size | 5242880 |
| innodb_log_files_in_group | 2 |
| innodb_log_group_home_dir | ./ |
| innodb_mirrored_log_groups | 1 |
| innodb_thread_concurrency | 8 |
| interactive_timeout | 28800 |
| join_buffer_size | 131072 |
| key_buffer_size | 16773120 |
| key_cache_age_threshold | 300 |
| key_cache_block_size | 1024 |
| key_cache_division_limit | 100 |
| language | /usr/local/mysql/share/... |
| large_files_support | ON |
| local_infile | ON |
| locked_in_memory | OFF |
| log | OFF |
| log_bin | OFF |
| log_slave_updates | OFF |
| log_slow_queries | OFF |
| log_update | OFF |
| log_warnings | OFF |
| long_query_time | 10 |
| low_priority_updates | OFF |
| lower_case_table_names | 0 |
| max_allowed_packet | 1047552 |
| max_binlog_cache_size | 4294967295 |
| max_binlog_size | 1073741824 |
| max_connect_errors | 10 |
| max_connections | 100 |
| max_delayed_threads | 20 |
| max_error_count | 64 |
| max_heap_table_size | 16777216 |
| max_join_size | 4294967295 |
| max_relay_log_size | 0 |
| max_sort_length | 1024 |
| max_tmp_tables | 32 |
| max_user_connections | 0 |
| max_write_lock_count | 4294967295 |
| myisam_max_extra_sort_file_size | 268435456 |
| myisam_max_sort_file_size | 2147483647 |
| myisam_recover_options | force |
| myisam_repair_threads | 1 |
| myisam_sort_buffer_size | 8388608 |
| net_buffer_length | 16384 |
| net_read_timeout | 30 |
| net_retry_count | 10 |
| net_write_timeout | 60 |
| open_files_limit | 1024 |
| pid_file | /usr/local/mysql/name.pid |
| port | 3306 |
| protocol_version | 10 |
| query_cache_limit | 1048576 |
| query_cache_size | 0 |
| query_cache_type | ON |
| read_buffer_size | 131072 |
| read_rnd_buffer_size | 262144 |
| rpl_recovery_rank | 0 |
| server_id | 0 |
| skip_external_locking | ON |
| skip_networking | OFF |
| skip_show_database | OFF |
| slave_net_timeout | 3600 |
| slow_launch_time | 2 |
| socket | /tmp/mysql.sock |
| sort_buffer_size | 2097116 |
| sql_mode | |
| table_cache | 64 |
| table_type | MYISAM |
| thread_cache_size | 3 |
| thread_stack | 131072 |
| timezone | EEST |
| tmp_table_size | 33554432 |
| tmpdir | /tmp/:/mnt/hd2/tmp/ |
| tx_isolation | READ-COMMITTED |
| version | 4.0.4-beta |
| wait_timeout | 28800 |
+---------------------------------+------------------------------+
La plupart des variables système sont présentées ici. Les
variables sans version sont présente depuis MySQL 3.22. Les
variables système InnoDB
sont listées dans
Section 15.5, « Options de démarrage InnoDB
».
Les valeurs pour les tailles de buffer, longueur et taille de pile sont données en octets, à moins que cela ne soit spécifié autrement.
Les informations sur le choix des valeurs de ces paramètres est disponible dans Section 7.5.2, « Réglage des paramètres du serveur ».
ansi_mode
Vaut ON
si mysqld
a
été démarré en mode --ansi
. See
Section 1.5.3, « Exécuter MySQL en mode ANSI ». Cette variable a été ajoutée
en MySQL 3.23.6 et supprimée en 3.23.41. Voyez la
description de sql_mode
.
back_log
Le nombre de connexions sortantes que MySQL peut supporter.
Cette valeur entre en jeu lorsque le thread principal MySQL
re¸oit de très nombreuses requêtes de connexions en très
peu de temps. MySQL prend un peu de temps (même si c'est
très peu de temps), pour vérifier la connexion et
démarrer un nouveau thread. La valeur de
back_log
indique combien de requête
seront mises en attente durant ce temps. Vous devrez
augmenter ce nombre si vous voulez mettre en attente plus de
requêtes durant une courte période de temps.
En d'autres termes, cette valeur est la taille de la queue
d'attente pour les connexions TCP/IP entrantes. Votre
système d'exploitation a ses propres limites pour ce type
de queue. La page du manuel Unix
listen(2)
doit contenir plus de détails.
Vérifiez la documentation de votre OS pour connaître la
valeur maximale de votre système. Si vous donne une valeur
à back_log
qui est plus grande que celle
que votre système supporte, cela restera sans effet.
basedir
Le dossier d'installation de MySQL. La valeur de l'option
--basedir
.
bdb_cache_size
Le buffer qui est alloué pour mettre en cache des lignes et
des index pour les tables BDB
. Si vous
n'utilisez pas la tables BDB
, vous
devriez démarrer mysqld
avec l'option
--skip-bdb
pour ne pas gaspiller de
mémoire. Cette variable a été ajoutée en MySQL 3.23.14.
bdb_home
Le dossier de base des tables BDB
. Cette
valeur doit être la même que celle de la variable
datadir
. Cette variable a été ajoutée
en MySQL 3.23.14.
bdb_log_buffer_size
Le buffer qui est alloué pour mettre en cache des lignes et
des index pour les tables BDB
. Si vous
n'utilisez pas la tables BDB
, vous
devriez démarrer mysqld
avec l'option
--skip-bdb
pour ne pas gaspiller de
mémoire. Cette variable a été ajoutée en MySQL 3.23.31.
bdb_logdir
Le dossier où le moteur BDB
écrit les
fichiers de log. C'est la valeur de l'option
--bdb-logdir
. Cette variable a été
ajoutée en MySQL 3.23.14.
bdb_max_lock
Le nombre maximum de verrous (par défaut 10 000) que vous
pouvez activer simultanément dans une table
BDB
. Vous devriez augmenter cette valeur
si vous obtenez des erreurs du type bdb: Lock table
is out of available locks
ou Got error 12
from ...
lorsque vous avez de longues transactions
ou que mysqld
doit examiner de nombreuses
lignes pour calculer la requête.
bdb: Lock table is out of available locks Got error 12 from ...
Cette variable a été ajoutée en MySQL 3.23.29.
bdb_shared_data
Vaut ON
si vous utilisez l'option
--bdb-shared-data
. Cette variable a été
ajoutée en MySQL 3.23.29.
bdb_tmpdir
La valeur de l'option --bdb-tmpdir
. Cette
variable a été ajoutée en MySQL 3.23.14.
bdb_version
La version du moteur BDB
. Cette variable
a été ajoutée en MySQL 3.23.31.
binlog_cache_size
La taille du cache qui contient les requêtes SQL destinées
au log binaire, durant une transaction. Un cache binaire est
alloué à chaque client si le serveur supporte les moteurs
transactionnel, et depuis MySQL 4.1.2, si le serveur a un
log binaire activé (option --log-bin
). Si
vous utilisez souvent de grandes transactions
multi-requêtes, vous devez augmenter cette valeur pour
améliorer les performances. Les variables
Binlog_cache_use
et
Binlog_cache_disk_use
sont aussi utiles
pour optimiser la taille de cette variable. Cette variable a
été ajoutée en MySQL 3.23.29. See
Section 5.9.4, « Le log binaire ».
bulk_insert_buffer_size
MyISAM
utilise une cache hiérarchisé
pour les insertions de masses (c'est à dire INSERT
... SELECT
, INSERT ... VALUES (...),
(...), ...
, et LOAD DATA
INFILE
). Cette variable limite la taille du cache
en octets, par threads. Utiliser la valeur de 0 va
désactiver cette optimisation.
Note : ce cache est
uniquement utilisé lorsque vous ajoutez des données dans
une table non-vide. Par défaut, cette option vaut 8 Mo.
Cette variable a été ajoutée en MySQL 4.0.3. Cette
variable s'appelait
myisam_bulk_insert_tree_size
.
character_set
Le jeu de caractères par défaut. Cette variable a été
ajoutée en MySQL 3.23.3, puis retirée en MySQL 4.1.1 et
remplacées par différentes variables
character_set_xxx
.
character_set_client
Le jeu de caractères pour les commandes du client. Cette variable a été ajoutée en MySQL 4.1.1.
character_set_connection
Le jeu de caractères utilisé pour les littéraux qui n'ont pas d'indication de jeu de caractères, pour certaines fonctions et pour les conversions de nombres vers une chaîne. Cette variable a été ajoutée en MySQL 4.1.1.
character_set_database
Le jeu de caractères par défaut pour les bases de
données. Le serveur modifie cette variable à chaque fois
que la base de données par défaut change. S'il n'y a pas
de base de données par défaut, cette variable prend la
valeur de character_set_server
. Cette
variable a été ajoutée en MySQL 4.1.1.
character_set_results
Le jeu de caractères utilisé pour retourner des résultats au client. Cette variable a été ajoutée en MySQL 4.1.1.
character_set_server
Le jeu de caractères par défaut pour le serveur. Cette variable a été ajoutée en MySQL 4.1.1.
character_set_system
Le jeu de caractères utilisé par le serveur pour stocker
des identifiants. Cette valeur est toujours
utf8
. Cette variable a été ajoutée en
MySQL 4.1.1.
character_sets
Les jeux de caractères supportés. Cette variable a été ajoutée en MySQL 3.23.15.
collation_connection
Cette variable a été ajoutée en MySQL 4.1.1.
collation_database
La collation utilisée par la base de données par défaut.
Le serveur modifie cette variable à chaque fois que la base
de données par défaut change. S'il n'y a pas de base de
données par défaut, cette variable prend la valeur de
collation_server
. Cette variable a été
ajoutée en MySQL 4.1.1.
collation_server
La collation par défaut du serveur. Cette variable a été ajoutée en MySQL 4.1.1.
concurrent_insert
Si cette option vaut ON
, MySQL va vous
permettre de réaliser des commandes
INSERT
sur les tables
MyISAM
en même temps que d'autres
commandes SELECT
seront exécutées. Vous
pouvez désactiver cette option en démarrant
mysqld
avec l'option
--safe
or --skip-new
.
Cette variable a été ajoutée en MySQL 3.23.7.
Le nombre de secondes d'attente d'un paquet de connexion
avant de conclure avec une erreur Bad
handshake
.
datadir
Le dossier de données de MySQL. C'est la valeur de l'option
--datadir
.
default_week_format
Le mode par défaut pour la fonction
WEEK()
. Cette variable a été ajoutée
en MySQL 4.0.14.
delay_key_write
Les options pour les tables MyISAM
. Elles
peuvent prendre l'une des valeurs suivantes :
Option | Description |
OFF |
DELAYED_KEY_WRITE est ignoré. |
ON |
(Par défaut) MySQL va honorer l'option
DELAY_KEY_WRITE de
CREATE TABLE . |
ALL |
Toutes les nouvelles tables ouvertes sont traitées comme si elles
étaient créées avec l'option
DELAY_KEY_WRITE . |
Si DELAY_KEY_WRITE
est activé, cela
signifie que le buffer de clé des tables ayant cette option
ne seront pas écrit sur le disque dès la fin de la
modification de la table, mais attendrons que la table soit
écrite. Cela accélère notablement les écritures des
modifications, mais il faut penser à ajouter une
vérification automatique des tables au démarrage avec
--myisam-recover=BACKUP,FORCE
. Voir aussi
Section 5.2.1, « Options de ligne de commande de mysqld
» et
Section 14.1.1, « Options de démarrage MyISAM
».
Notez que --external-locking
n'offre aucune
protection contre les corruptions d'index pour les tables
qui utilisent les écritures retardées de clés.
Cette variable a été ajoutée en MySQL 3.23.8.
delayed_insert_limit
Après avoir inséré
delayed_insert_limit
lignes, le
gestionnaire de INSERT DELAYED
va
vérifiez si il n'y a pas de commande
SELECT
en attente. Si c'est le cas, il va
autoriser ces commandes avant de continuer.
delayed_insert_timeout
Combien de temps le thread INSERT DELAYED
doit attendre les commandes INSERT
avant
de s'achever.
delayed_queue_size
Quelle taille de file (en lignes) doit être allouée pour
gérer les commandes INSERT DELAYED
. Si
la file se remplit, tous les clients qui émettent des
commandes INSERT DELAYED
devront attendre
un peu de place avant de pouvoir continuer.
flush
Cette option vaut ON
si vous avez
démarré MySQL avec l'option --flush
.
Cette variable a été ajoutée en MySQL 3.22.9.
flush_time
Si cette option a une valeur non nulle, toutes les
flush_time
secondes, toutes les tables
seront fermées (pour libérez des ressources et
synchroniser les index sur le disque). Nous ne recommandons
cette option que sur les systèmes Windows 9x/Me, ou les
systèmes qui ont très peu de ressources. Cette variable a
été ajoutée en MySQL 3.22.18.
ft_boolean_syntax
Liste des opérateurs supportés par IN BOOLEAN
MODE
. Cette variable a été ajoutée en MySQL
4.0.1. See Section 12.6.1, « Booléens de recherches en texte intégral ».
La valeur par défaut de cette variable est '+
-><()~*:""&|'
. Les règles pour modifier
cette valeur sont les suivantes :
La fonction de l'opérateur est déterminée par sa position dans la chaîne.
La chaîne de remplacement doit faire 14 caractères.
Chaque caractère doit être ASCII, non-alphanumérique.
Le premier ou le deuxième caractère doit être un espace.
Aucun doublon n'est autorisé, hormis les opérateurs guillemets aux positions 11 et 12. Ceux deux caractères ne sont pas obligatoirement les mêmes, mais ils sont les deux qui peuvent l'être.
Les positions 10, 13 et 14 (qui sont par défaut
‘:
’,
‘&
’ et
‘|
’) sont réservées
pour une utilisation ultérieure.
ft_max_word_len
La taille maximale d'un mot à inclure dans un index
FULLTEXT
. Cette variable a été ajoutée
en MySQL 4.0.0.
Note : les index
FULLTEXT
doivent être reconstruits
après chaque modification de cette variable. Utilisez
REPAIR TABLE tbl_name QUICK
.
ft_min_word_len
La taille minimale d'un mot à inclure dans un index
FULLTEXT
. Cette variable a été ajoutée
en MySQL 4.0.0.
Note : les index
FULLTEXT
doivent être reconstruits
après chaque modification de cette variable. Utilisez
REPAIR TABLE tbl_name QUICK
.
ft_query_expansion_limit
Le nombre de solutions générales à utiliser pour les
extensions de recherche avec WITH QUERY
EXPANSION
. Cette variable a été ajoutée en
MySQL 4.1.1.
ft_stopword_file
Une fichier dans lequel lire une liste de mots interdits
pour les recherches en texte plein. Tous les mots du fichier
seront utilisés : les commentaires ne sont
pas respectés. Par défaut, des listes de mots
interdits internes sont utilisés, tels que définis dans
myisam/ft_static.c
). En donnant à
cette option la valeur d'une chaîne vide
""
, vous désactivez le filtre de mots
interdits.
Note : les index
FULLTEXT
doivent être reconstruits
après chaque modification de cette variable. Utilisez la
commande REPAIR TABLE tbl_name QUICK
.
Cette variable a été ajoutée en MySQL 4.1.0.
group_concat_max_len
La taille maximale de la chaîne résultat de
GROUP_CONCAT()
. Cette variable a été
ajoutée en MySQL 4.1.0.
have_bdb
YES
si mysqld
supporte
les tables BDB
.
DISABLED
si --skip-bdb
a
été utilisé. Cette variable a été ajoutée en MySQL
3.23.30.
have_innodb
YES
si mysqld
supporte
les tables InnoDB
.
DISABLED
si
--skip-innodb
a été utilisé. Cette
variable a été ajoutée en MySQL 3.23.37.
have_isam
YES
si mysqld
supporte
les tables ISAM
.
DISABLED
si --skip-isam
a été utilisé. Cette variable a été ajoutée en MySQL
3.23.30.
have_raid
YES
si mysqld
supporte
les tables RAID
. Cette variable a été
ajoutée en MySQL 3.23.30.
have_openssl
YES
si mysqld
supporte
le chiffrement SSL avec le protocole de communication client
/ serveur. Cette variable a été ajoutée en MySQL 3.23.43.
init_connect
Une chaîne a exécuter sur le serveur lors de chaque connexion. La chaîne est constituée d'une ou plusieurs commandes SQL. Pour spécifier une commande multiple, séparez les requêtes individuelles par des points-virgules. Cette variable a été ajoutée en MySQL version 4.1.2.
Par exemple, chaque client commence par défaut avec le mode
d'auto-validation activé. Il n'y a pas de variable globale
à spécifier pour désactiver l'auto-validation, et
init_connect
peut servir à ¸a :
SET GLOBAL init_connect='SET AUTOCOMMIT=0';
Cette variable peut aussi être configurée en ligne de commande ou dans un fichier d'options. Pour assigner la variable comme montré dans le fichier d'options, ajoutez ces lignes là :
[mysqld] init_connect='SET AUTOCOMMIT=0'
Cette variable a été ajoutée en MySQL 4.1.2.
init_file
Le nom du fichier spécifié avec l'option
--init-file
lorsque vous démarrez le
serveur. C'est un fichier qui contient les requêtes SQL que
vous voulez voir exécutées dès le démarrage. Chaque
commande doit être sur une seule ligne, et ne doit pas
inclure de commentaires. Cette variable a été ajoutée en
MySQL 3.23.2.
init_slave
Cette variable est similaire à
init_connect
, mais la chaîne doit être
exécutée par l'esclave, à chaque démarrage du thread
SQL. Le format de la chaîne est le même que pour la
variable init_connect
. Cette variable a
été ajoutée en MySQL 4.1.2.
innodb_xxx
Les variables système de InnoDB
sont
listées dans Section 15.5, « Options de démarrage InnoDB
».
interactive_timeout
Le nombre de secondes durant lequel le serveur attend une
activité de la part de la connexion avant de la fermée. Un
client interactif est un client qui utilise l'option
CLIENT_INTERACTIVE
avec
mysql_real_connect()
. Voir aussi
wait_timeout
.
join_buffer_size
La taille du buffer qui est utilisée pour les jointures complètes (les jointures qui n'utilisent pas d'index). Ce buffer est alloué une fois pour chaque jointure entre deux tables. Augmentez cette valeur si vous voulez obtenir des jointures plus rapides, lorsque l'ajout d'index n'est pas possible. Normalement, le mieux est d'ajouter de bons index.
Les blocs d'index des tables MyISAM
et
ISAM
sont mis en buffer et partagés par
tous les threads. key_buffer_size
est la
taille du buffer utilisé. Le buffer de clé est aussi
appelé le cache de clé.
Augmentez cette valeur pour obtenir une meilleure gestion des index (pour les lectures et écritures multiples), autant que vous le pouvez : 64 Mo sur une machine de 256 Mo est une valeur répandue. Toutefois, si vous utilisez une valeur trop grande (par exemple, plus de 50% de votre mémoire totale), votre système risque de commencer à utiliser sa mémoire swap, et devenir très lent. N'oubliez pas que MySQL ne met pas en cache les données lues, et il faut laisser le système d'exploitation respirer.
Pour obtenir encore plus de vitesse lors de l'écriture de
plusieurs lignes en même temps, utilisez LOCK
TABLES
. See Section 13.4.5, « Syntaxe de LOCK TABLES/UNLOCK TABLES
».
Vous pouvez vérifier les performances du buffer de clés
avec la commande SHOW STATUS
et en
examinant les variables
Key_read_requests
,
Key_reads
,
Key_write_requests
et
Key_writes
. See Section 13.5.3, « Syntaxe de SHOW
».
Le ratio Key_reads/Key_read_requests
doit
normalement être inférieur à 0.01. Le ratio
Key_writes/Key_write_requests
est
généralement près de 1 si vous utilisez essentiellement
des modifications et des effacements mais il peut être plus
petit si vous avez des modifications qui changent plusieurs
lignes en même temps, ou si vous utilisez l'option
DELAY_KEY_WRITE
.
La fraction du buffer de clé utilisée est déterminée
avec la variable key_buffer_size
en
conjonction avec la variable
Key_blocks_used
et la taille de bloc de
buffer. Depuis MySQL 4.1.1, la taille de bloc de buffer est
disponible dans la variable serveur
key_cache_block_size
. La fraction
utilisée du buffer est :
(Key_blocks_used * key_cache_block_size) / key_buffer_size
Avant MySQL 4.1.1, les blocs du cache de clé étaient de 1024 octets, ce qui fait que la fraction utilisée était :
(Key_blocks_used * 1024) / key_buffer_size
key_cache_age_threshold
Cette valeur contrôle le transit des buffers d'une
sous-chaîne de cache de clé vers une autre, moins
prioritaire. Les valeurs les plus basses accroissent la
vitesse de transit. La valeur minimale est de 100. La valeur
par défaut est 300. Cette variable a été ajoutée en
MySQL 4.1.1. See Section 7.4.6, « Le cache de clé des tables MyISAM
».
key_cache_block_size
La taille du bloc de cache de clé, en octets. La valeur par
défaut est 1024. Cette variable a été ajoutée en MySQL
4.1.1. See Section 7.4.6, « Le cache de clé des tables MyISAM
».
key_cache_division_limit
Le point de division entre la sous-chaîne prioritaire et la
seconde sous-chaîne. Cette valeur est le pourcentage du
buffer à utiliser pour la sous-chaîne secondaire. Les
valeurs possibles vont de 1 à 100. La valeur par défaut
est 100. Cette variable a été ajoutée en MySQL 4.1.1. See
Section 7.4.6, « Le cache de clé des tables MyISAM
».
language
La langue utilisée pour les message d'erreurs.
large_file_support
Si mysqld
a été compilé avec le
support des grands fichiers. Cette variable a été ajoutée
en MySQL 3.23.28.
local_infile
Si mysqld
a été configuré avec le
support de LOCAL
pour les commandes
LOAD DATA INFILE
. Cette variable a été
ajoutée en MySQL 4.0.3.
locked_in_memory
Si mysqld
a été verrouillé en mémoire
avec --memlock
Cette variable a été
ajoutée en MySQL 3.23.25.
log
Si le log de toutes les requêtes est activé. See Section 5.9.2, « Le log général de requêtes ».
log_bin
Si le log binaire est activé. Cette variable a été ajoutée en MySQL 3.23.14. See Section 5.9.4, « Le log binaire ».
log_slave_updates
Si les modifications des esclaves doivent être enregistrées. Le log binaire doit être activé pour que cette option fonctionne. Cette variable a été ajoutée en MySQL 3.23.17. See Section 6.8, « Options de démarrage de la réplication ».
log_slow_queries
Indique si les requêtes lentes doivent être enregistrées.
``Lente'' est déterminé par la valeur de
long_query_time
. Cette variable a été
ajoutée en MySQL 4.0.2. See
Section 5.9.5, « Le log des requêtes lentes ».
log_update
Si le log de modification est activé. Cette variable a été ajoutée en MySQL 3.22.18. Notez que le log binaire est préférable au log de modifications, qui n'est plus disponible en MySQL 5.0. See Section 5.9.3, « Le log de modification ».
long_query_time
Si une requête prend plus de
long_query_time
secondes, le compteur de
requêtes lentes Slow_queries
sera
incrémenté. Si vous utilisez l'option
--log-slow-queries
, ces requêtes seront
enregistrées dans un historique de requêtes lentes. Cette
durée est mesurée en temps réel, et non pas en temps
processus, ce qui fait que les requêtes qui seraient juste
sous la limite avec un système légèrement chargé,
pourrait être au dessus avec le même système, mais
chargé. See Section 5.9.5, « Le log des requêtes lentes ».
low_priority_updates
Si cette option vaut 1
, toutes les
requêtes INSERT
,
UPDATE
, DELETE
et
LOCK TABLE WRITE
attendent qu'il n'y ait
plus de SELECT
ou de LOCK TABLE
READ
en attente pour cette table. Cette variable
s'appelait avant
sql_low_priority_updates
. Cette variable
a été ajoutée en MySQL 3.22.5.
lower_case_table_names
Si cette option vaut 1, les noms de tables sont stockées en minuscules sur le disque, et les comparaisons de nom de tables seront insensibles à la casse. Depuis la version 4.0.2, cette option s'applique aussi aux noms de bases. Depuis la version 4.1.1 cette option s'applique aussi aux alias de table. See Section 9.2.2, « Sensibilité à la casse pour les noms ».
Vous ne devez pas mettre cette variable
à 0 si vous utilisez MySQL sur un serveur qui n'a pas de
sensibilité à la casse au niveau du système de fichiers
(comme Windows ou Mac OS X). Nouveau en 4.0.18 : si cette
variable vaut 0 est que le système de fichier n'est pas
sensible à la casse, MySQL va automatiquement donner la
valeur de 2 à lower_case_table_names
.
max_allowed_packet
La taille maximale d'un paquet.
Le buffer de message est initialisé avec
net_buffer_length
octets, mais peut
grandir jusqu'à max_allowed_packet
octets lorsque nécessaire. Cette valeur est par défaut
petit, pour intercepter les gros paquets, probablement
erronés.
Vous devez augmenter cette valeur si vous utilisez de
grandes colonnes BLOB
. Cette valeur doit
être aussi grande que le plus grand BLOB
que vous utiliserez. Le protocole limite actuellement
max_allowed_packet
à 16 Mo en MySQL 3.23
et 1 Go en MySQL 4.0.
max_binlog_cache_size
Si une transaction multi-requête requiert plus que cette
quantité de mémoire, vous obtiendrez une erreur
"Multi-statement transaction required more than
'max_binlog_cache_size' bytes of storage"
. Cette
variable a été ajoutée en MySQL 3.23.29.
max_binlog_size
Disponible depuis la version 3.23.33. Si vous écrivez dans
le log binaire (de réplication) et que cela dépasse la
taille de max_binlog_size
, une erreur
sera indiquée. Vous ne pouvez pas donner à
max_binlog_size
une valeur inférieure à
1024 octets, ou plus grande que 1 Go. Cette variable a été
ajoutée en MySQL 3.23.33.
Notez bien si vous utilisez les transactions : une
transaction est écrite en une seule fois dans le log
binaire, et elle ne peut pas être répartie en plusieurs
fichiers. Par conséquent, si vous avez de grandes
transactions, vous verrez peut être des fichiers de log
plus grand que max_binlog_size
.
Si max_relay_log_size
vaut 0, la valeur
de max_binlog_size
s'applique aussi aux
logs de relais. max_relay_log_size
a
été ajoutée en MySQL 4.0.14.
max_connect_errors
S'il y a plus que max_connect_errors
connexion interrompues depuis un même hôte, cet hôte sera
bloqué dans ses prochaines tentatives de connexions. Vous
pouvez débloquer un hôte avec la commande FLUSH
HOSTS
.
max_connections
Le nombre maximal de clients simultanés accepté. En
augmentant cette valeur, vous augmentez le nombre de
pointeur de fichier que requiert mysqld
.
Voyez la section Section 7.4.8, « Quand MySQL ouvre et ferme les tables » pour des
commentaires sur les pointeurs de fichiers. Voyez aussi la
section Section A.2.6, « Erreur Too many connections
».
max_delayed_threads
Ne pas lancer plus que
max_delayed_threads
threads pour gérer
les insertions INSERT DELAYED
. Si vous
essayez d'insérer des données dans une nouvelle table
alors que tous les gestionnaires INSERT
DELAYED
sont utilisés, la ligne sera insérée
comme si l'option DELAYED
n'avait pas
été spécifiée. Cette variable a été ajoutée en MySQL
3.23.0.
max_error_count
Le nombre maximum d'erreur, alertes et messages de note à
stocker pour afficher avec SHOW ERRORS
ou
SHOW WARNINGS
. Cette variable a été
ajoutée en MySQL 4.1.0.
max_heap_table_size
Ne pas autoriser la création de tables de type
MEMORY
(HEAP
) plus
grande que max_heap_table_size
. La valeur
de la variable est utilisée pour calculer la valeur
maximale de MAX_ROWS
pour la table
MEMORY
. Modifier cette variable n'a pas
d'effet sur les tables existantes, à moins que la table ne
soit recrée, avec une commande comme CREATE
TABLE
ou TRUNCATE TABLE
, ou
encore modifiée avec ALTER TABLE
. Cette
variable a été ajoutée en MySQL 3.23.0.
max_insert_delayed_threads
Cette variable est un synonyme de
max_delayed_threads
. Cette variable a
été ajoutée en MySQL 4.0.19.
max_join_size
Les jointures qui liront probablement plus de
max_join_size
lignes, retourneront une
erreur. Utilisez cette valeur si vos utilisateurs font des
jointures avec de mauvaises clauses
WHERE
, qui prennent trop de temps, et
retournent des millions de lignes.
En donnant une valeur à cette variable qui est autre que
DEFAULT
remet la valeur de
SQL_BIG_SELECTS
à 0
.
Si vous modifiez à nouveau la valeur de
SQL_BIG_SELECTS
, la variable
max_join_size
sera ignorée.
Si un résultat de requête est déjà dans le cache de requête, aucune limite de taille n'est vérifiée, car le résultat a déjà été compilé, et cela ne posera aucun problème au serveur pour l'envoyer à nouveau.
Cette variable s'appelait précédemment
sql_max_join_size
.
max_relay_log_size
Disponible depuis la version 4.0.14. Si vous écrivez des
données dans un log de relais et que leur taille dépasse
la valeur donnée, le log de relais passe au fichier
suivant. Cette variable vous permet de placer différentes
contraintes de taille sur les logs binaire et de relais.
Cependant, en donnant la valeur de 0 à cette valeur, MySQL
utilisera max_binlog_size
pour les deux
logs, binaire et de relais. Vous devez donner à
max_relay_log_size
la valeur de 0 ou plus
de 4096, et moins que 1 Go. Par défaut, c'est 0. Cette
variable a été ajoutée en MySQL 4.0.14. See
Section 6.3, « Détails d'implémentation de la réplication ».
max_seeks_for_key
La limite de recherche lors de recherche de lignes basées sur un index. L'optimiseur MySQL va supposer que lorsque vous recherchez des lignes dans une table en analysant les index, vous n'aller pas générer plus de ce nombre de recherches, indépendamment de la cardinalité de la clé. En donnant une valeur faible à cette variable (100 ?) vous pouvez forcer MySQL a préférer les scans d'index plutôt que les scans de tables. Cette variable a été ajoutée en MySQL 4.0.14.
max_sort_length
Le nombre d'octets à utiliser lors du tri des colonnes de
type BLOB
et TEXT
.
Seuls les max_sort_length
octets de
chaque valeur seront utilisés pour le tri. Le reste est
ignoré.
max_tmp_tables
Cette option ne fait encore rien. Le nombre maximal de tables temporaires qu'un client peut garder ouverte en même temps.
max_user_connections
Le nombre maximum de connexions actives pour un utilisateur particulier (0 = pas de limite). Cette variable a été ajoutée en MySQL 3.23.34.
max_write_lock_count
Après max_write_lock_count
pose de
verrou en écriture, autorise quelques verrous en lecture.
Cette variable a été ajoutée en MySQL 3.23.7.
myisam_data_pointer_size
La taille par défaut du pointeur à utiliser avec
CREATE TABLE
pour les tables
MyISAM
lorsque qu'aucune option
MAX_ROWS
n'est spécifiée. Cette
variable ne peut pas être inférieure à 2 ni supérieure
à 8. La valeur par défaut est de 4. Cette variable a été
ajoutée en MySQL 4.1.2. See Section A.2.11, « Erreur The table is full
».
myisam_max_extra_sort_file_size
Si un fichier temporaire est utilisé pour créer rapidement
un fichier d'index pour une table MyISAM
est plus grand que la valeur de cette variable, alors
préfère la méthode du cache de clé. C'est surtout
utilisé pour forcer les grands index à utiliser la
méthode plus lente du cache de clé pour créer l'index.
Cette variable a été ajoutée en MySQL 3.23.37.
Note : la valeur donnée
est en megaoctets avant 4.0.3 et en octets après.
myisam_max_sort_file_size
La taille maximale du fichier temporaire que MySQL est
autorisé à utiliser durant la recréation des fichiers
d'index (avec REPAIR
, ALTER
TABLE
ou LOAD DATA INFILE
). Si
la taille du fichier dépasse
myisam_max_sort_file_size
, l'index sera
créé avec un cache de clé (plus lent). Cette variable a
été ajoutée en MySQL 3.23.37.
Note : ce paramètre est
spécifié en megaoctets avant la version 4.0.3 et en octets
depuis.
myisam_recover_options
La valeur de l'option --myisam-recover
.
Cette variable a été ajoutée en MySQL 3.23.36.
myisam_repair_threads
Si cette valeur est plus grande que 1, les index des tables
MyISAM
durant un processus de
Repair by sorting
seront créés en
parallèle : chaque index avec son propre thread.
Note : les réparations
multi-threadées sont encore en développement, et en
qualité alpha. Cette variable a été
ajoutée en MySQL 4.0.13.
myisam_sort_buffer_size
Le buffer qui est alloués lors du tri d'index avec la
commande REPAIR
ou lors de la création
d'index avec CREATE INDEX
ou
ALTER TABLE
. Cette variable a été
ajoutée en MySQL 3.23.16.
named_pipe
Sous Windows, indique si le serveur supporte les connexions via les pipes nommés. Cette variable a été ajoutée en MySQL 3.23.50.
net_buffer_length
Le buffer de communication est remis à zéro entre deux
requêtes. Cela ne devrait pas être modifié, mais si vous
avez très peu de mémoire, vous pouvez le remettre à la
taille présumée de la requête (c'est à dire, la taille
de requête envoyé par le client. Si la requête dépasse
cette taille, le buffer est automatiquement agrandi jusqu'à
max_allowed_packet
octets).
net_read_timeout
Nombre de secondes d'attente des dernières données, avant
d'annuler la lecture. Notez que lorsque nous n'attendons pas
de données d'une connexion, le délai d'expiration est
donné par write_timeout
. Voir aussi
slave_net_timeout
. Cette variable a été
ajoutée en MySQL 3.23.20.
net_retry_count
Si une lecture sur une port de communication est interrompu,
net_retry_count
tentatives sont faites
avant d'abandonner. Cette valeur doit être
particulièrement grande pour FreeBSD
car
les interruptions internes sont envoyés à tous les
threads. Cette variable a été ajoutée en MySQL 3.23.7.
net_write_timeout
Nombre de secondes d'attente pour qu'un bloc soit envoyé à
une connexion, avant d'annuler l'écriture. Voir aussi
net_read_timeout
. Cette variable a été
ajoutée en MySQL 3.23.20.
open_files_limit
Si open_files_limit
ne vaut pas 0, alors
mysqld
va utiliser cette valeur pour
réserver des pointeurs de fichiers à utiliser avec
setrlimit()
. Si cette valeur est 0, alors
mysqld
va réserver
max_connections*5
ou
max_connections + table_cache*2
(le plus
grand des deux) pointeurs de fichiers. Vous devriez
augmenter cette valeur si mysqld
vous
donne des erreurs du type 'Too many open
files'
.
pid_file
Le chemin vers le fichier de processus
(PID
). La valeur de l'option
--pid-file
. Cette variable a été ajoutée
en MySQL 3.23.23.
port
Le port de connexion sur lequel le serveur attend les
connexions TCP/IP. Cette variable peut être spécifiée
avec --port
.
protocol_version
La version du protocole utilisé par le serveur MySQL. Cette variable a été ajoutée en MySQL 3.23.18.
query_alloc_block_size
Taille des blocs de mémoire alloués pour les objets durant l'analyse et la préparation des requêtes. Si vous avez un problème avec la fragmentation de la mémoire, cela peut être utile d'augmenter cette valeur. Cette variable a été ajoutée en MySQL 4.0.16.
query_cache_limit
Ne met pas en cache les résultats qui sont plus grands que
query_cache_limit
. Par défaut, 1 Mo.
Cette variable a été ajoutée en MySQL 4.0.1.
query_cache_min_res_unit
La taille minimale pour les blocs alloués par le cache de requête. La valeur par défaut est de 4 ko. Des informations sur l'optimisation de cette variable sont données dans la section Section 5.11.3, « Configuration du cache de requêtes ». Cette variable a été ajoutée en MySQL 4.1.
query_cache_size
La mémoire allouée pour stocker les résultats des
vieilles requêtes. Si query_cache_size
vaut 0, le cache de requête est désactivé (par défaut).
Cette variable a été ajoutée en MySQL 4.0.1.
query_cache_type
Choisit le type de cache de requête. Modifier la variable
GLOBAL
modifie le cache pour tous les
clients. Les clients peuvent modifier la variable de
SESSION
pour l'adapter à leur
utilisation.
query_cache_type
peut prendre les valeurs
numériques suivantes :
Option | Description |
0 or OFF
|
Ne met pas en cache les résultats. Notez que cela ne va pas libérer le
buffer de requête. Pour cela, il faut donner à
query_cache_size la valeur de 0. |
1 or ON
|
Met en cache tous les résultats exceptés les requêtes SELECT
SQL_NO_CACHE ... . |
2 or DEMAND
|
Met en cache uniquement les requêtes SELECT SQL_CACHE
... . |
Cette variable a été ajoutée en MySQL 4.0.3.
query_cache_wlock_invalidate
Normalement, lorsqu'un client pose un verrou
WRITE
sur une table
MyISAM
, les autres clients ne sont pas
empêchés d'émettre des requêtes sur la table, si le
résultat est déjà en cache. En donnant la valeur de 1 à
cette variable, le verrou WRITE
empêchera toutes les requêtes qui feront référence à
cette table. Cela force les autres clients à attendre que
le verrou se libère. Cette variable a été ajoutée en
MySQL 4.0.19.
query_prealloc_size
La taille du buffer persistant utilisé pour l'analyse des
requêtes et leur exécution. Ce buffer n'est pas libéré
entre deux requêtes. Si vous manipulez des requêtes
complexes, une valeur plus grande pour
query_prealloc_size
sera plus utile pour
améliorer les performances, car elle peut réduire les
allocations complémentaires de mémoire durant l'exécution
des requêtes.
Cette variable a été ajoutée en MySQL 4.0.16.
range_alloc_block_size
La taille de bloc qui est alloué lors de l'optimisation d'intervalle. Cette variable a été ajoutée en MySQL 4.0.16.
read_buffer_size
Chaque thread qui fait une recherche séquentielle alloue un
buffer de cette taille pour son scan. Si vous faites de
nombreux scan séquentiels, vous pourriez avoir besoin
d'augmenter cette valeur. Cette variable a été ajoutée en
MySQL 4.0.3. Auparavant, cette variable s'appelait
record_buffer
.
read_only
Lorsque cette variable vaut ON
pour un
serveur de réplication esclave, cela fait que le serveur ne
permet aucune modification, hormis celles de la
réplication, ou des utilisateurs ayant le droit de
SUPER
. Cela peut être pratique pour
s'assurer qu'un esclave n'accepte aucune modification des
clients. Cette variable a été ajoutée en MySQL 4.0.14.
read_rnd_buffer_size
Lors de la lecture des lignes triées, les lignes sont lues
dans un buffer, pour éviter les accès disques. En donnant
à cette variable une grande valeur, vous améliorerez les
performances des clauses ORDER BY
.
Cependant, ce buffer est alloué pour chaque client : il
est recommandé de ne pas donner une valeur globale trop
importante. Au lieu de cela, modifiez cette valeur si votre
client a besoin de faire de gros tris. Cette variable a
été ajoutée en MySQL 4.0.3. Auparavant, cette variable
s'appelait record_rnd_buffer
.
safe_show_database
Ne montre pas les bases pour lesquelles un utilisateur n'a
pas des droits de bases ou de tables. Cela peut améliorer
considérablement la sécurité si vous craignez de voir les
utilisateurs découvrir ce que les autres ont mis en place.
Voir aussi skip_show_database
.
Cette variable a été supprimée en MySQL 4.0.5. A la
place, utilisez le droit SHOW DATABASES
pour contrôler les accès aux noms des bases de données.
secure_auth
Si le serveur MySQL a été lancé avec l'option
--secure-auth
, il va empêcher les
connexions des comptes qui ont un compte au format
pre-version 4.1. Dans ce cas, la valeur de cette variable
vaut ON
, sinon, c'est
OFF
.
Vous devriez activer cette option si vous voulez empêcher l'utilisation des mots de passe à l'ancien format (et donc, améliorer la sécurité de votre serveur). Cette variable a été ajoutée en MySQL 4.1.1.
Le démarrage du serveur échouera avec une erreur si cette option est activée, mais que la table de droits est toujours au format pre-version 4.1.
Lorsqu'elle est utilisée comme une option du client, le client va refuser de se connecter au serveur si le serveur requiert un mot de passe à l'ancien format.
server_id
La valeur de l'option --server-id
. Elle
sert à la réplication. Cette variable a été ajoutée en
MySQL 3.23.26.
skip_external_locking
skip_locking
vaut OFF
si mysqld
utilise le verrouillage
externe. Cette variable a été ajoutée en MySQL 4.0.3.
Auparavant, cette variable s'appelait
skip_locking
.
skip_networking
skip_networking
vaut ON si seules les
connexions locales (via socket) sont autorisées. Sous Unix,
les connexions locales utilisent un fichier de socket Unix.
Sous Windows, les connexions locales utilisent les pipes
nommés. Sous NetWare, seules les connexions TCP/IP sont
supportées, alors ne donnez pas la valeur de
ON
à cette variable. Cette variable a
été ajoutée en MySQL 3.22.23.
skip_show_database
skip_show_database
empêche les
utilisateurs d'exécuter des commandes SHOW
DATABASES
si ils n'ont pas les droits de
PROCESS
. Cela peut améliorer la
sécurité si vous craignez de voir les utilisateurs
découvrir ce que les autres ont mis en place. Voir aussi
safe_show_database
. Cette variable a
été ajoutée en MySQL 3.23.4. Depuis MySQL 4.0.2, son
effet dépend aussi du droit SHOW
DATABASES
: si la variable vaut
ON
, la commande SHOW
DATABASES
n'est autorisée qu'aux comptes ayant le
droit de SHOW DATABASES
, et la commande
affiche tous les noms de bases. Si la valeur est
OFF
, SHOW DATABASES
est autorisé à tous les utilisateurs, mais il n'affichera
que les noms de bases de données pour lesquelles
l'utilisateur a le droit de SHOW
DATABASES
ou un droit quelconque dans la base.
slave_net_timeout
Nombre de secondes d'attente de données en lecture ou écriture sur une connexion maître / esclave avant d'annuler. Cette variable a été ajoutée en MySQL 3.23.40.
slow_launch_time
Si la création du thread prend plus de
slow_launch_time
secondes, le compteur de
threads lents Slow_launch_threads
sera
incrémenté. Cette variable a été ajoutée en MySQL
3.23.15.
socket
La socket Unix utilisé par le serveur. Sous Unix, c'est le fichier de socket Unix, pour les connexions locales. Sous Windows, c'est le nom du pipe nommé, pour les connexions locales.
sort_buffer_size
Chaque thread qui doit faire un tri alloue un buffer de
cette taille. Augmentez cette taille pour accélérer les
clauses ORDER BY
ou GROUP
BY
. See Section A.4.4, « Où MySQL stocke les fichiers temporaires ? ».
sql_mode
Le mode SQL courant. Cette variable a été ajoutée en MySQL 3.23.41. See Section 5.2.2, « Le mode SQL du serveur ».
storage_engine
Cette variable est un synonyme de
table_type
. Cette variable a été
ajoutée en MySQL 4.1.2.
table_cache
Le nombre de tables ouvertes pour tous les threads réunis.
En augmentant cette valeur, vous augmentez le nombre de
pointeurs de fichiers que mysqld
utilise.
Vous pouvez vérifier si vous avez besoin de plus de cache
de tables en étudiant la valeur de la variable
Opened_tables
. See
Section 5.2.4, « Variables de statut du serveur ». Si cette variable
est grande, c'est que vous ne faites pas souvent de
commandes FLUSH TABLES
(qui force les
tables à se recharger), vous devrez alors augmenter cette
valeur.
Pour plus d'informations sur le cache de table, voyez Section 7.4.8, « Quand MySQL ouvre et ferme les tables ».
table_type
Le type de table par défaut. Pour configurer le type de
table par défaut au démarrage, utilisez
--default-table-type
. Cette variable a
été ajoutée en MySQL 3.23.0. See
Section 5.2.1, « Options de ligne de commande de mysqld
».
thread_cache_size
Combien de threads nous allons conserver en cache pour
réutilisation. Lorsqu'un client se déconnecte, les threads
du client sont mis en cache s'il n'y en a pas déjà
thread_cache_size
de conservé. Tous les
nouveaux threads sont d'abord prélevé dans le cache, et
uniquement lorsque le cache est vide, un nouveau thread est
créé. Cette variable peut vous permettre d'améliorer les
performances si vous avez de nombreuses connexions.
Normalement, thread_cache_size
ne donne
pas d'amélioration notable si vous avez une bonne
implémentation des threads. En examinant la différence
entre les variables de statut Connections
et Threads_created
vous pouvez voir
comment votre système de cache de threads est efficace.
(see Section 5.2.4, « Variables de statut du serveur » pour plus de
détails) Cette variable a été ajoutée en MySQL 3.23.16.
thread_concurrency
Sous Solaris, mysqld
va appeler
thr_setconcurrency()
avec cette valeur.
thr_setconcurrency()
permet à
l'application de donner au système de threads une
indication sur le nombre de threads qui seront exécutés en
même temps. Cette variable a été ajoutée en MySQL
3.23.7.
thread_stack
La taille de la pile pour chaque thread. De nombreuses
limites détectées par crash-me
sont
dépendantes de cette valeur. La valeur par défaut est
suffisamment grande pour des opérations normales. See
Section 7.1.4, « La suite de tests MySQL ».
timezone
Le fuseau horaire du serveur. Cette option prend la valeur
de la variable d'environnement TZ
lorsque
mysqld
est démarré. Elle peut aussi
être modifiée avec l'argument --timezone
de mysqld_safe
. Cette variable a été
ajoutée en MySQL 3.23.15. See
Section A.4.6, « Problèmes de fuseaux horaires ».
tmp_table_size
Si une table temporaire en mémoire excède cette taille,
MySQL va automatiquement la convertir en une table
MyISAM
sur le disque. Augmentez la valeur
de tmp_table_size
si vous faites un usage
intensif de la clause GROUP BY
et que
vous avez beaucoup de mémoire.
tmpdir
Le dossier utilisé pour les fichiers temporaires et les
tables temporaires. Depuis MySQL 4.1, cette variable peut
prendre une liste de différents chemins, qui sont utilisés
circulairement. Les chemins doivent être séparés par des
deux points (‘:
’) sous Unix
et des points-virgules (‘;
’)
sous Windows, NetWare et OS/2.
Cette fonctionnalité permet de répartir la charge en
plusieurs disques. Si le serveur MySQL sert d'esclave de
réplication, vous ne devez pas faire pointer
tmpdir
sur un dossier en mémoire, car il
sera vidé si le serveur redémarre. Un esclave de
réplication doit pouvoir reprendre ses fichiers temporaires
pour que la réplication puisse redémarrer, en incluant les
tables temporaires et les opérations de LOAD DATA
INFILE
. Si les fichiers du dossier temporaire sont
perdus au redémarrage, la réplication s'arrêtera.
Cette variable a été ajoutée en MySQL 3.22.4.
transaction_alloc_block_size
La taille de bloc d'allocation de mémoire pour le stockage des requêtes qui font partie d'une transaction, qui sera stockée dans le log binaire durant une validation. Cette variable a été ajoutée en MySQL 4.0.16.
transaction_prealloc_size
Le buffer persistant pour
transaction_alloc_blocks
, qui n'est pas
libéré entre deux requêtes. En rendant cet buffer ``assez
grand'' pour accommoder toutes les requêtes dans une
transaction classique, vous pouvez éviter de nombreux
appels malloc()
. Cette variable a été
ajoutée en MySQL 4.0.16.
tx_isolation
Le niveau par défaut d'isolation de transactions. Cette variable a été ajoutée en MySQL 4.0.3.
version
Le numéro de version du serveur.
wait_timeout
Le nombre de secondes d'attente du serveur sur une connexion non interactive avant de la refermer.
Lors du démarrage du thread,
SESSION.WAIT_TIMEOUT
est initialisé avec
GLOBAL.WAIT_TIMEOUT
ou
GLOBAL.INTERACTIVE_TIMEOUT
, suivant le
type de client (tel que défini par l'option de connexion
CLIENT_INTERACTIVE
). Voir aussi
interactive_timeout
.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.