Types de tables MySQL
<<<
Options de démarrage MyISAM Espace requis pour les clefs
>>>

15.1 Le moteur de tables MyISAM
15 Types de tables MySQL
 Manuel de Référence MySQL 4.1 : Version Française

->Options de démarrage MyISAM
Espace requis pour les clefs
Formats de table MyISAM
Problèmes avec les tables MyISAM

15.1.1 Options de démarrage MyISAM

Les options suivantes de mysqld permettent de modifier le comportement des tables MyISAM :

    --myisam-recover=mode
    Active le mode de restauration automatique des tables MyISAM corrompues.
    --delay-key-write=ALL
    N'écrit pas les buffers de clés entre deux écritures dans une table MyISAM .

    Note : Si vous faîtes cela, vous ne devez pas utiliser les tables MyISAM avec d'autres programmes (comme depuis un autre serveur MySQL ou avec myisamchk ) lorsque la table est utilisée. Sinon, vous allez obtenir une corruption d'index.

    Utiliser --external-locking n'aidera pas les tables qui utilisent --delay-key-write .
Options de ligne de commande mysqld .Les variables systèmes suivantes affectent le comportement des tables MyISAM :
    bulk_insert_buffer_size
    La taille du cache d'index lors des insertions de masse. Note : c'est une limite par par thread !
    myisam_max_extra_sort_file_size
    Utilisée pour aider MySQL à décider quand utiliser le cache de clé lent mais sûr. Note : ce paramètre était donné en megaoctets avant MySQL 4.0.3, et en octets depuis 4.0.3.
    myisam_max_sort_file_size
    N'utilise pas la méthode de tri rapide pour créer un index, si un fichier temporaire dépasserait cette taille. Note : ce paramètre était donné en megaoctets avant MySQL 4.0.3, et en octets depuis 4.0.3.
    myisam_sort_buffer_size
    La taille du buffer lors de la restauration de table.
Variables sytème du serveur .La restauration automatique est activée si vous lancez mysqld avec l'option --myisam-recover . Dans ce cas, lorsque le serveur ouvre la table MyISAM , il vérifie si la table a été marquée comme crashée ou si le compteur de tables ouvertes n'est pas zéro ou si le serveur utilise --skip-external-locking . Si une des conditions précédente est vraie, il arrive ceci :
  • La table est analysée pour rechercher des erreurs.
  • Si le serveur trouve une erreur, il essaie de faire une réparation rapide (avec le tri, sans recréer de données).
  • Si la réparation échoue à cause d'une erreur dans le fichier de données (par exemple, une erreur de clé), le serveur essaie à nouveau, en re-créant le fichier de données.
  • Si la réparation échoue encore, le serveur essaie encore avec une ancienne méthode réparation (écrire les lignes les unes après les autres, sans tri). Cette méthode devrait être capable de réparer tout les types d'erreurs, et elle occupe peu de place sur le disque.
Si la restauration n'est toujours pas capable de retrouver toutes les lignes, et que vous n'avez pas spécifié l'option FORCE dans la valeur de l'option --myisam-recover , la réparation automatique s'annule, avec le message d'erreur suivant :

Error: Couldn't repair table: test.g00pages
Si vous spécifiez la valeur FORCE , une alerte comme celle-ci sera écrite dans les logs :

Warning: Found 344 of 354 rows when repairing ./test/g00pages
Notez que si la valeur de restauration automatique inclut BACKUP , le processus de restauration créera des fichiers avec des noms de la forme tbl_name-datetime.BAK . Vous devriez avoir une tâche régulière avec cron pour supprimer automatiquement ces fichiers dans les bases de données pour nettoyer le volume.

<< Options de démarrage MyISAM >>
Types de tables MySQL Le moteur de tables MyISAM Espace requis pour les clefs