5.2 Configuration de MySQL
5 Administration du serveur
Manuel de Référence MySQL 4.1 : Version Française
. Options de ligne de commande de mysqld . Le mode SQL du serveur ->Variables serveur système . Variables de statut du serveur
|
5.2.3 Variables serveur système
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 Variables dynamiques système .
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 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
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 Choix des paramètres du serveur .
-
ansi_mode
-
Vaut
ON
si
mysqld
a été démarré en mode
--ansi
.
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.
Le log binaire des mises à jour .
-
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.
-
connect_timeout
-
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 Options de ligne de commande
mysqld
et 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.
Opérateurs booléens de recherche 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
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.
-
key_buffer_size
-
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
.
Syntaxe de
LOCK TABLES
et
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
.
Syntaxe de
SET
et
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
|
Le cache de clés
MyISAM
.
-
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.
Le cache de clés
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.
Le cache de clés
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.
Le cache de clés
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é.
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.
Le log binaire des mises à jour .
-
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.
Options de 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.
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.
Le log des mises à jour .
-
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é.
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.
Identifier Case Sensitivity .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
Comment MySQL ouvre et ferme les tables pour des commentaires sur les pointeurs de fichiers. Voyez aussi
la section 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.
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.
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
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
.
Où MySQL conserve les fichiers temporaires .
-
sql_mode
-
Le mode SQL courant.
Cette variable a été ajoutée en MySQL 3.23.41.
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
.
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 Comment 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.
Options de ligne de commande
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.
( 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. La suite de tests comparatifs de 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.
Les problèmes de fuseau horaire .
-
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
.
Sommaire :
|