Le mode SQL du serveur
<<<
Variables serveur système Variables de statut du serveur
>>>

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 :

<< Variables serveur système >>
Le mode SQL du serveur Configuration de MySQL Variables de statut du serveur