Vous pouvez réindexer la table et même la réduire. Cependant, si vous souhaitez retarder une telle maintenance sur disque, vous devez au moins recalculer les statistiques d'index.
Sans recalculer les statistiques d'index, l'optimiseur de requêtes MySQL peut faire de mauvais choix pour les plans EXPLAIN de requête. Cela pourrait nuire aux SELECT si les statistiques des données inexistantes sont toujours présentes. Cela est vrai pour MyISAM et InnoDB.
Vous n'avez pas besoin de réduire la table pour calculer les statistiques d'index, bien que ce soit mieux pour les performances globales.
Pour calculer les statistiques de tous les index d'une table, vous devez exécuter
ANALYZE TABLE tablename;
Tu pourrais faire ça tous les soirs. Il ne tentera pas de défragmenter ou de réduire les données. Vous pourriez probablement le faire une fois par semaine en courant OPTIMIZE TABLE tablename;
. Cela fera également le ANALYZE TABLE tablename;
pour vous après la réduction du fichier physique de la table ( .ibd
pour InnoDB ou .MYI
pour MyISAM) ou.
RolandoMySQLDBA
la source