Syntaxe de CHECKSUM TABLE
<<<
Syntaxe de OPTIMIZE TABLE Syntaxe de REPAIR TABLE
>>>

14.5.2 Commandes d'entretien des tables
14.5 Référence de langage d'administration de la base de données
14 Syntaxe des commandes SQL
 Manuel de Référence MySQL 4.1 : Version Française

Syntaxe de ANALYZE TABLE
Syntaxe de BACKUP TABLE
Syntaxe de CHECK TABLE
Syntaxe de CHECKSUM TABLE
->Syntaxe de OPTIMIZE TABLE
Syntaxe de REPAIR TABLE
Syntaxe de RESTORE TABLE

14.5.2.5 Syntaxe de OPTIMIZE TABLE


OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ...
OPTIMIZE TABLE doit être utilisée si une grande partie de la base a été effacée, ou si vous avez fait de nombreuses modifications dans une table à format de ligne dynamique (des tables qui ont des colonnes de type VARCHAR , BLOB et TEXT ). Les lignes effacées sont conservées dans une liste, et les prochaines opérations d' INSERT réutilisent les vieilles positions de lignes. Vous pouvez vous servir de la commande OPTIMIZE TABLE pour récupérer l'espace utilisé et défragmenter le fichier de données.

Dans la plupart des installations, vous n'avez pas à utiliser OPTIMIZE TABLE . Même si vous faites beaucoup de mises à jour sur des colonnes à taille dynamique, il n'est pas évident que vous ayez à passer cette commande plus d'une fois par semaine ou par mois, et uniquement sur quelques tables.

Pour le moment, OPTIMIZE TABLE fonctionne uniquement avec les tables de type MyISAM et BDB . Pour les tables BDB , OPTIMIZE TABLE est actuellement l'équivalent de ANALYZE TABLE . Syntaxe de ANALYZE TABLE .

Vous pouvez vous arranger pour que OPTIMIZE TABLE fonctionne sur d'autres types de tables, en démarrant mysqld avec --skip-new ou --safe-mode , mais dans ce cas, OPTIMIZE TABLE est simplement l'équivalent de ALTER TABLE .

OPTIMIZE TABLE fonctionne comme ceci :
  • Si la table contient des lignes effacées ou des lignes fragmentées, la table est compactée.
  • Si les pages d'index ne sont pas triées, OPTIMIZE TABLE les trie.
  • Si les statistiques ne sont pas à jour (et que la table n'a pas pu effectuer de réparation en triant l'index), elles sont mises à jour.

Notez que la table est verrouillée durant la commande OPTIMIZE TABLE .

Avant MySQL 4.1.1, OPTIMIZE n'était pas reportée dans le log binaire. Depuis MySQL 4.1.1 elles le sont, à moins que l'attribut optionnel NO_WRITE_TO_BINLOG ou son alias LOCAL ne soit utilisé.

<< Syntaxe de OPTIMIZE TABLE >>
Syntaxe de CHECKSUM TABLE Commandes d'entretien des tables Syntaxe de REPAIR TABLE