Pour vérifier/réparer les tables ISAM (.ISM
et .ISD
), vous devez utiliser
l'utilitaire : isamchk
. Pour vérifier/réparer les tables MyISAM (.MYI
et .MYD
)
vous devez utiliser utiliser l'utilitaire myisamchk
.
10.18 Types de tables MySQL.
Par la suite, nous traiterons le cas de isamchk
mais les instructions pourront
aussi s'appliquer ˆ myisamchk
.
Vous pouvez utiliser l'utilitaire isamchk
pour receuillir des informations sur
votre base de données et ses tables, pour vérifier et réparer les tables ou encore les
optimiser. La section suivante décrit les commandes d'invocations de isamchk
(y compris les options), les méthodes de maintenance régulière, et comment utiliser
isamchk
pour effectuer diverses tàches.
If you run mysqld
with --skip-locking
(which is the default on
some systems, like Linux), you can't reliably use isamchk
to
check a table when mysqld
is using the same table. If you
can be sure that no one is accessing the tables through mysqld
while you run isamchk
, you only have to do mysqladmin
flush-tables
before you start checking the tables. If you can't
guarantee the above, then you must take down mysqld
while you
check the tables. If you run isamchk
while mysqld
is updating
the tables, you may get a warning that a table is corrupt even if it
isn't.
If you are not using --skip-locking
, you can use isamchk
to check tables at any time. While you do this, all clients that try
to update the table will wait until isamchk
is ready before
continuing.
If you use isamchk
to repair or optimize tables, you
MUST always ensure that the mysqld
server is not using
the table (this also applies if you are using --skip-locking
).
If you don't take down mysqld
you should at least do a
mysqladmin flush-tables
before you run isamchk
.
You can in most cases also use the command OPTIMIZE TABLES
to
optimize and repair tables, but this is not as fast or reliable (in case
of real fatal errors) as isamchk
. On the other hand,
OPTIMIZE TABLE
is easier to use and you don't have to worry about
flushing tables.
OPTIMIZE TABLE
.
Sommaire: