Cette section décrit les options d'InnoDB
.
Depuis MySQL 4.0, toutes les options peuvent être spécifiées
sous la forme --opt_name=value
en ligne de
commande, ou dans les fichiers d'options. Avant MySQL 4.0, les
options numériques devaient être spécifiée avec
--set-variable=opt_name=value
ou la syntaxe
-O opt_name=value
.
innodb_additional_mem_pool_size
La taille du buffer mémoire d'InnoDB
, pour
ses dictionnaires d'informations, et ses structures internes
de données. Une valeur pratique est 2Mo, mais plus vous aurez
de tables dans votre application, plus vous devrez augmenter
cette valeur. Si InnoDB
est à court de
mémoire, il va allouer de la mémoire auprès du système, et
écrire des messages dans le fichier de logs MySQL.
innodb_buffer_pool_awe_mem_mb
Taille du pool de buffer, en Mo, s'il est placé dans la
mémoire AWE de Windows 32 bits. Disponible depuis MySQL
version 4.1.0, et uniquement utile sur Windows 32 bits. Si
votre système Windows 32 bits supporte plus de 4 Go de
mémoire, dite aussi Address Windowing Extensions, vous pouvez
allouer le pool de buffer InnoDB
dans la
mémoire physique AWE en utilisant ce paramètre. La valeur
maximal est de 64000. Si ce paramètre est spécifié, alors
innodb_buffer_pool_size est la fenêtre dans l'espace
d'adresse 32 bits de mysqld où InnoDB
place la mémoire AWE. Une bonne valeur pour
innodb_buffer_pool_size est alors 500M.
innodb_buffer_pool_size
La taille de buffer mémoire que InnoDB
utiliser pour mettre en cache les données et les index de
tables. Plus cette valeur est grand, et moins vous ferez
d'accès disques. Sur un serveur dédiés, vous pouvez monter
cette valeur jusqu'à 80% de la mémoire physique de la
machine. Ne lui donnez pas une valeur trop grande, car cela
peut engendrer l'utilisation de mémoire sur le disque par
votre serveur.
innodb_data_file_path
Chemin individuel vers les fichiers de données, et leur
taill. Le chemin complet de chaque fichier de données est
créé en concaténant innodb_data_home_dir
avec les chemins spécifiés ici. La taille du fichier est
spécifiée en méga-octets, ce qui explique la présence du
'M' après les spécifications ci-dessus. Depuis la version
3.23.44, vous pouvez donner au fichier une taille supérieure
à 4 Go sur les systèmes d'exploitation qui acceptent les
gros fichiers. Sur certains systèmes, la taille doit être
inférieure à 2 Go. Si vous ne spécifiez pas
innodb_data_file_path
, le comportement par
défaut depuis la version 4.0 est de créer un fichier
auto-croissant de 10 Mo, appelé ibdata1
.
Depuis la version 3.23.44, vous pouvez donner une taille de
fichier de plus de 4Go sur les systèmes d'exploitation qui
supportent les grands fichiers. Vous pouvez aussi utiliser les
partition raw. See Section 15.15.2, « Utiliser les raw devices pour l'espace de tables ».
innodb_data_home_dir
La partie commune du chemin de tous les fichiers de données
InnoDB
. Si vous ne mentionnez pas cette
option, la valeur par défaut sera celle du dossier de
données MySQL. Vous pouvez aussi spécifier une chaîne vide,
et dans ce cas, les chemins spécifiés dans
innodb_data_file_path
seront des chemins
absolus.
innodb_fast_shutdown
Par défaut, InnoDB
fait une purge
complète et vide le buffer d'insertion avant une extinction.
Ces opérations peuvent prendre beaucoup de temps. Si vous
donnez à ce paramètre la valeur de 1,
InnoDB
ignore ces opérations d'extinction.
Cette option est valable depuis MySQL 3.23.44 et 4.0.1. Sa
valeur par défaut est 1 depuis la version 3.23.50.
innodb_file_io_threads
Nombre de pointeurs de fichier de InnoDB
.
Normalement, cette valeur doit être de 4, mais sur des
disques Windows, les accès peuvent être améliorés en
augmentant cette valeur.
innodb_file_per_table
Cette option fait que InnoDB
va stocker
chaque table dans un fichier .ibd
indépendant. Voyez la section sur les espaces de tables
multiples.See Section 15.7.6, « Espaces de tables multiples : chaque table InnoDB
a
son fichier .ibd
». Cette
option a été ajoutée en MySQL 4.1.1.
innodb_flush_log_at_trx_commit
Normalement, cette option vaut 1, ce qui signifie que lors de la validation de la transaction, les logs sont écrits sur le disque, et les modifications faites par la transaction deviennent permanentes, et survivront un crash de base. Si vous souhaitez réduire la sécurité de vos données, et que vous exécutez de petites transactions, vous pouvez donner une valeur de 0 à cette option, pour réduire les accès disques.
innodb_flush_method
(Disponible depuis 3.23.40 et plus récent) La valeur par
défaut pour cette option est fdatasync
.
Une autre option est O_DSYNC
.
innodb_force_recovery
Attention : cette option ne doit être définie que dans les
cas où vous voulez exporter les données d'une base
corrompue, dans une situation d'urgence. Les valeurs possibles
de cette option vont de 1 à 6. La signification des valeurs
est décrite dans Section 15.9.1, « Forcer la restauration ». Par
mesure de sécurité, InnoDB
empêche les
modifications de données si la valeur de cette option est
supérieure à 0. Cette option est disponible depuis MySQL
3.23.44.
innodb_lock_wait_timeout
Le délai d'expiration des transactions
InnoDB
, en cas de blocage de verrou, avant
d'annuler. InnoDB
détecte automatiquement
les blocages de verrous et annule alors les transactions. Si
vous utilisez la commande LOCK TABLES
, ou
un autre gestionnaire de table transactionnelles que
InnoDB
dans la même transaction, un
blocage de verrou peut survenir, et InnoDB
ne pourra pas le détecter. Ce délai est donc pratique pour
résoudre ces situations.
innodb_log_arch_dir
Le dossier où les logs complétés doivent être archivés,
si nous utilisons l'archivage de logs. La valeur de ce
paramètre doit être actuellement la même que la valeur de
innodb_log_group_home_dir
.
innodb_log_archive
Cette valeur doit être actuellement de 0. Au moment de la
restauration de données à partir d'une sauvegarde, à l'aide
des log binaires de MySQL, il n'y a actuellement pas besoin
d'archiver les fichiers de log InnoDB
.
innodb_log_buffer_size
La taille du buffer que InnoDB
utilise pour
écrire les log dans les fichiers de logs, sur le disque. Les
valeurs utiles vont de 1 Mo à 8 Mo. Un grand buffer de log
permet aux grandes transactions de s'exécuter sans avoir à
écrire de données dans le fichier de log jusqu'à la
validation. Par conséquent, si vous avez de grandes
transactions, augmenter cette taille va réduire les accès
disques.
innodb_log_file_size
Taille de chaque fichier de log dans un groupe de log, exprimé en méga-octets. Les valeurs pratiques vont de 1Mo à une fraction de la taille du buffer de log (1 / le nombre de logs, en fait). Plus la taille est grande, moins de points de contrôles seront utilisés, réduisant les accès disques. La taille combinée des logs doit être inférieure à 4 Go sur les systèmes 32 bits.
innodb_log_files_in_group
Nombre de fichiers de logs dans le groupe de log.
InnoDB
écrit dans ces fichiers de manière
circulaire. Une valeur de 2 est recommandée. C'est la valeur
par défaut.
innodb_log_group_home_dir
Le dossier pour les fichiers de logs. Il doit avoir la même
valeur que innodb_log_arch_dir
. Si vous ne
spécifiez pas de paramètre de log InnoDB
,
la configuration par défaut va créer deux fichiers de logs
de 5 Mo, appelés ib_logfile0
et
ib_logfile1
dans le dossier de données
MySQL.
innodb_max_dirty_pages_pct
Cette entier va de 0 à 100. Par défaut, il vaut 90. Le
thread principal de InnoDB
essaie de
transmettre les pages au pool de buffer, pour qu'un
pourcentage maximal de
innodb_max_dirty_pages_pct
soit encore en
attente de flush. Cette option est disponible depuis 4.0.13 et
4.1.1. Si vous avez le droit de SUPER
, ce
pourcentage peut être changée durant l'exécution du
serveur :
SET GLOBAL innodb_max_dirty_pages_pct = value;
innodb_mirrored_log_groups
Nombre de copies identiques de groupe de log que nous conservons. Actuellement, cette valeur doit être au minimum de 1.
innodb_open_files
Ce n'est utile que si vous utilisez les espaces de tables
multiples. Cette option spécifie que le nombre maximal de
fichier .ibd
que
InnoDB
peut garder ouvert simultanément.
La valeur minimum est de 10. La valeur maximum est de 300.
Disponible depuis MySQL version 4.1.1.
Les pointeurs de fichiers utilisés par
.ibd
sont réservés pour
InnoDB
. Ils sont indépendants de ceux
spécifiés par --open-files-limit
, et
n'affectent pas les opérations de cache.
innodb_thread_concurrency
InnoDB
essaie de garder le nombre de thread
système concurents inférieur à la limite de ce paramètre.
La valeur par défaut est 8. Si vous avez des problèmes de
performances, et que SHOW INNODB STATUS
revèle que des threads attendent des sémaphores, essayez de
diminuer ou augmenter ce paramètre. Si vous avez un serveur
avec de nombreux processeurs et disques, vous pouvez essayer
d'augmenter la valeur, pour utiliser au mieux les ressources
disponibles. Une vlaeur recommandée est la somme du nombre de
processeurs et de disques que vous avez. Une valeur de 500 ou
supérieur, supprime la vérification de concurence. Cette
option a été ajoutée depuis MySQL 3.23.44 et 4.0.1.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.