C'est une bonne idée que d'effectuer des vérifications des
        tables régulièrement, plutôt que d'attendre qu'un problème
        survienne. Pour faire ces vérifications, vous pouvez utiliser
        la commande myisamchk -s. L'option
        -s (raccourci pour --silent)
        fait que myisamchk s'exécute en mode
        silencieux, et n'affiche que les messages d'erreurs. Voyez les
        sections Section 13.5.2.3, « Syntaxe de CHECK TABLE » et
        Section 13.5.2.6, « Syntaxe de REPAIR TABLE ».
      
        C'est aussi une bonne idée que de vérifier les tables lorsque
        le serveur démarre. Par exemple, à chaque fois qu'une machine
        redémarre au milieu d'une modification de table, vous devrez
        faire une vérification de toutes les tables qui pourraient
        être affectées : c'est une ``table supposément corrompue''.
        Vous pouvez ajouter un test à safe_mysqld
        pour qu'il exécute myisamchk, afin de
        vérifier toutes les tables qui ont été modifiées dans les 24
        dernières heures, si il reste un vieux fichier
        .pid (identifiant de processus) après un
        redémarrage : le fichier .pid est créé
        par le serveur mysqld lorsqu'il démarre, et
        il est supprimé lorsque le serveur s'arrête dans des
        conditions normales. La présence d'un fichier
        .pid au démarrage indique que le serveur
        s'est arrêté anormalement.
      
        Un test encore meilleur serait de vérifier toutes les tables
        dont la date de modification est plus récente que celle du
        fichier .pid.
      
        Vous devriez aussi vérifiez vos tables régulièrement durant
        les opérations normales. Chez MySQL AB, nous utilisons une
        tâche en cron pour vérifier toutes nos
        tables importantes au moins une fois par semaine, avec une ligne
        comme celle-ci dans le fichier crontab :
      
35 0 * * 0 /path/to/myisamchk --fast --silent /path/to/datadir/*/*.MYI
Cela nous affiche les informations sur les tables qui ont été corrompues, de fa¸on à ce que nous puissions les examiner et les réparer.
Comme nous n'avons jamais eu de table qui se soit corrompue inopinément (des tables qui se corrompent pour d'autres raisons que des problèmes matériels) depuis quelques années (ce qui est véridique), une fois par semaine est un bon rythme pour nous.
        Nous recommandons que vous commenciez par exécuter la commande
        myisamchk -s chaque nuit, sur toutes les
        tables qui ont été modifiées dans les 24 dernières heures,
        jusqu'à ce que vous preniez confiance en MySQL.
      
        Normalement, vous n'avez pas à maintenir autant les tables
        MySQL. Si vous changez les tables avec un format de ligne
        dynamique (les tables avec des colonnes
        VARCHAR, BLOB ou
        TEXT) ou que vous avez des tables avec de
        nombreuses lignes effacées, vous pouvez envisager de faire des
        défragmentations du fichier, pour récupérer cet espace. Une
        fois par mois est un bon rythme.
      
        Vous pouvez faire cela avec la commande SQL OPTIMIZE
        TABLE sur les tables en question, ou bien, si vous
        avez éteint le serveur mysqld, faites :
      
shell> myisamchk -r -s --sort-index -O sort_buffer_size=16M */*.MYI
        Pour les tables ISAM, la commande est
        similaire à :
      
shell> isamchk -r -s --sort-index -O sort_buffer_size=16M */*.MYI
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.
