C'est vraiment un message d'information.
Probablement, vous faites OPTIMISER sur une table InnoDB (table utilisant le moteur de stockage InnoDB, plutôt que le moteur de stockage MyISAM ).
InnoDB ne prend pas en charge OPTIMIZE comme le fait MyISAM. Cela fait quelque chose de différent. Il crée une table vide, y copie toutes les lignes de la table existante, supprime essentiellement l'ancienne table et renomme la nouvelle table, puis exécute un ANALYSE pour collecter des statistiques. C'est ce qui se rapproche le plus d'InnoDB pour faire un OPTIMISATION.
Le message que vous recevez est essentiellement un serveur MySQL répétant ce que le moteur de stockage InnoDB a dit au serveur MySQL:
Table ne prend pas en charge l'optimisation, dit le moteur de stockage InnoDB ...
"Je (le moteur de stockage InnoDB) ne fait pas d'opération OPTIMISER comme mon ami (le moteur de stockage MyISAM) le fait."
"faire recréer + analyser à la place", dit le moteur de stockage InnoDB ...
"J'ai décidé de réaliser un ensemble différent d'opérations qui aboutiront à un résultat équivalent."
OPTIMIZE TABLE
fonctionne bien avec le moteur InnoDB selon l'article de support officiel: http://dev.mysql.com/doc/refman/5.5/en/optimize-table.htmlVous remarquerez qu'optimiser les tables InnoDB reconstruira la structure des tables et mettra à jour les statistiques d'index (quelque chose comme
ALTER TABLE
).Gardez à l'esprit que ce message peut être une mention informative uniquement et que l'information très importante est le statut de votre requête: OK!
la source
La meilleure option est de créer une nouvelle table avec les mêmes propriétés
Renommez NEW.NAME.TABLE et TABLE.CRASH
Après avoir bien travaillé, supprimez
la source
La meilleure option est de créer une nouvelle table, de copier les lignes dans la table de destination, de supprimer la table réelle et de renommer la table nouvellement créée. Cette méthode convient aux petites tables,
la source