Mysql
 sql >> Base de données >  >> RDS >> Mysql

Quand les index de base de données doivent-ils être reconstruits ?

Il n'est pas nécessaire de "reconstruire" un index. Ils sont toujours tenus à jour. Peut-être qu'il faisait référence à la reconstruction de la table. En fonction de vos modèles d'utilisation et de votre schéma, vous pouvez obtenir des pages fragmentées dans InnoDB, et je pense également dans MyISAM. La reconstruction de la table peut améliorer les performances en éliminant la fragmentation de vos données sur le disque. Je n'utilise pas régulièrement les tables MyISAM, mais je pense qu'il est recommandé d'exécuter 'OPTIMIZE TABLE' avec certains modèles d'utilisation. Voir la documentation MySQL sur OPTIMIZE TABLE pour de bonnes informations sur MyISAM et InnoDB.

Je ne suis pas aussi familier avec les subtilités de MyISAM, mais avec InnoDB, il est vrai que les statistiques peuvent devenir obsolètes. La base de données conserve des statistiques estimées sur la façon dont vos données sont distribuées pour un index donné, et il est possible que celles-ci soient obsolètes, mais MySQL/InnoDB a des fonctionnalités intégrées pour essayer de maintenir les statistiques à jour. Vous n'avez généralement pas à vous en soucier.

Donc, si vous utilisez InnoDB, la réponse est non, vous n'avez généralement rien à faire activement pour que vos index fonctionnent bien. Je ne suis pas aussi sûr avec MyISAM, je pense qu'il est plus courant d'avoir besoin d'optimiser ces tables régulièrement.