Services webmasters
Partenaires
Jeux concours gratuits
 
Variables utilisateur
<<<
Variables système Syntaxe des commentaires
>>>

6.1 Structure du langage
6 Référence du langage MySQL
 Manuel de Référence MySQL 4.1 : Version Française

Literals: Comment écrire les chaînes et les nombres
Noms de bases, tables, index, colonnes et alias
Sensibilité à la casse pour les noms
Variables utilisateur
->Variables système
Syntaxe des commentaires
Est-ce que MySQL est sensible aux mots réservés ?

6.1.5 Variables système

A partir de la version 4.0.3 de MySQL, nous fournissons un meilleur accès à beaucoup de variables système et variables de connexion. On peut changer la plupart d'entre elle sans avoir à stopper le serveur.

Il y'a deux sortes de variables système : Les variables spécifiques aux threads (ou à la connexion) qui sont uniques à la connexion courante et les variables globales qui sont utilisées pour configurer les évènements globaux. Les variables globales sont aussi utilisées pour configurer les valeurs initales des variables spécifiques au threads pour les nouvelles connexions.

Lorsque mysqld démarre, toutes les variables globales sont initialisées à partir des arguements 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 .

Pour définir la valeur d'une variable GLOBAL , vous devez utiliser l'une des syntaxes suivantes : (Ici nous utilisons la variable sort_buffer_size à titre d'exemple)


SET GLOBAL sort_buffer_size=valeur;
SET @@global.sort_buffer_size=valeur;
Pour définir la valeur d'une variable SESSION , vous devez utiliser l'une des syntaxes suivantes :

SET SESSION sort_buffer_size=valeur;
SET @@session.sort_buffer_size=valeur;
SET sort_buffer_size=valeur;
Si vous ne spécifiez pas GLOBAL ou SESSION alors SESSION est utilisé. Syntaxe de SET . LOCAL est un synonyme de SESSION .

Pour récupérer la valeur d'une variable de type GLOBAL vous pouvez utiliser l'une des commandes suivantes :


SELECT @@global.sort_buffer_size;
SHOW GLOBAL VARIABLES like 'sort_buffer_size';
Pour récupérer la valeur d'une variable de type SESSION vous pouvez utiliser l'une des commandes suivantes :

SELECT @@session.sort_buffer_size;
SHOW SESSION VARIABLES like 'sort_buffer_size';
Lorsque vous récuperez une valeur de variable avec la syntaxe @@nom_variable et que vous ne spécifiez pas GLOBAL ou SESSION , MySQL retournera la valeur spécifique au thread ( SESSION ) si elle existe. Sinon, MySQL retournera la valeur globale.La raison d'imposer la présence du mot GLOBAL pour configurer une variable de type GLOBAL mais non pour la lire est pour être sur que vous n'aurez pas de problèmes plus tard si vous voulez introduire ou effacer une variable spécifique au thread qui aurait le même nom. Dans ce cas, vous pourriez changer accidentellement l'état du serveur pour toutes les connexions (et non la votre uniquement).

Voilà la liste complète de toutes les variables que que vous pouvez récuperer ou modifier et une indication quant à l'utilisation de GLOBAL ou SESSION avec elles.

Nom de la variable Type de valeur Type
autocommit bool SESSION
big_tables bool SESSION
binlog_cache_size num GLOBAL
bulk_insert_buffer_size num GLOBAL | SESSION
concurrent_insert bool GLOBAL
connect_timeout num GLOBAL
convert_character_set string SESSION
delay_key_write OFF | ON | ALL GLOBAL
delayed_insert_limit num GLOBAL
delayed_insert_timeout num GLOBAL
delayed_queue_size num GLOBAL
error_count num LOCAL
flush bool GLOBAL
flush_time num GLOBAL
foreign_key_checks bool SESSION
identity num SESSION
insert_id bool SESSION
interactive_timeout num GLOBAL | SESSION
join_buffer_size num GLOBAL | SESSION
key_buffer_size num GLOBAL
last_insert_id bool SESSION
local_infile bool GLOBAL
log_warnings bool GLOBAL
long_query_time num GLOBAL | SESSION
low_priority_updates bool GLOBAL | SESSION
max_allowed_packet num GLOBAL | SESSION
max_binlog_cache_size num GLOBAL
max_binlog_size num GLOBAL
max_connect_errors num GLOBAL
max_connections num GLOBAL
max_error_count num GLOBAL | SESSION
max_delayed_threads num GLOBAL
max_heap_table_size num GLOBAL | SESSION
max_join_size num GLOBAL | SESSION
max_sort_length num GLOBAL | SESSION
max_tmp_tables num GLOBAL
max_user_connections num GLOBAL
max_write_lock_count num GLOBAL
myisam_max_extra_sort_file_size num GLOBAL | SESSION
myisam_max_sort_file_size num GLOBAL | SESSION
myisam_sort_buffer_size num GLOBAL | SESSION
net_buffer_length num GLOBAL | SESSION
net_read_timeout num GLOBAL | SESSION
net_retry_count num GLOBAL | SESSION
net_write_timeout num GLOBAL | SESSION
query_cache_limit num GLOBAL
query_cache_size num GLOBAL
query_cache_type enum GLOBAL
read_buffer_size num GLOBAL | SESSION
read_rnd_buffer_size num GLOBAL | SESSION
rpl_recovery_rank num GLOBAL
safe_show_database bool GLOBAL
server_id num GLOBAL
slave_compressed_protocol bool GLOBAL
slave_net_timeout num GLOBAL
slow_launch_time num GLOBAL
sort_buffer_size num GLOBAL | SESSION
sql_auto_is_null bool SESSION
sql_big_selects bool SESSION
sql_big_tables bool SESSION
sql_buffer_result bool SESSION
sql_log_binlog bool SESSION
sql_log_off bool SESSION
sql_log_update bool SESSION
sql_low_priority_updates bool GLOBAL | SESSION
sql_max_join_size num GLOBAL | SESSION
sql_quote_show_create bool SESSION
sql_safe_updates bool SESSION
sql_select_limit bool SESSION
sql_slave_skip_counter num GLOBAL
sql_warnings bool SESSION
table_cache num GLOBAL
table_type enum GLOBAL | SESSION
thread_cache_size num GLOBAL
timestamp bool SESSION
tmp_table_size enum GLOBAL | SESSION
tx_isolation enum GLOBAL | SESSION
version string GLOBAL
wait_timeout num GLOBAL | SESSION
warning_count num LOCAL
unique_checks bool SESSION

Les variables suivies d'un num peuvent se voir affecter une valeur numérique. Celles marquées avec bool peuvent prendre 0, 1, ON ou OFF . Les variables qui sont du type enum doivent normalement comporter au moins l'une des valeurs disponibles pour la variable, mais peuvent aussi contenir les index des membres de la collection. (Le premier index est 0).

Voilà une description de quelques variables :
Variable Description
identity Alias pour last_insert_id (compatibilité Sybase)
sql_low_priority_updates Alias pour low_priority_updates
sql_max_join_size Alias pour max_join_size
delay_key_write_for_all_tables Si cette variable et delay_key_write sont définies, alors toutes les nouvelles tables MyISAM qui sont ouvertes utiliseront les écritures de clefs reportées.
version Alias for VERSION() (compatibilité Sybase (?))
Une déscription des autres variables peut être trouvée dans la section des options de démarrage, la description de SHOW VARIABLES et dans la section de SET . Options en ligne de commande de mysqld . SHOW VARIABLES . Syntaxe de SET .

<< Variables système >>
Variables utilisateur Structure du langage Syntaxe des commentaires
Services webmasters
Les manuels
 
CoursPHP.com - Reproduction interdite -