S'il y a plusieurs insertions et suppressions dans les index d'une table, les index peuvent devenir fragmentés. Par fragmentation, nous voulons dire que l'ordre physique de la page d'index n'est pas proche de l'ordre alphabétique des enregistrements dans les pages, ou qu'il y a plusieurs pages non-utilisées dans le bloc de 64 pages qui ont été allouées à l'index.
Une manière d'accélérer les index est d'extraire
périodiquement les données de la table dans un fichier avec
mysqldump
, d'effacer la table puis de la
recréer.
Une autre manière de défragmenter consiste à exécuter un
ALTER
sur le type de la table pour le changer
en MyISAM
puis de le repasser en
InnoDB
.
ALTER TABLE tbl_name TYPE=InnoDB
Cela fait que MySQL va reconstruire la table. Un autre moyen de
réaliser la défragmentation est d'utiliser l'utilitaire
mysqldump
pour exporter la table vers un
fichier texte, effacer la table, la recréer et importer le
fichier de données.
Si les insertions dans un index sont toujours ascendantes et que
les lignes supprimées le sont à la fin du fichier, alors
l'algorithme de gestion de l'espace fichiers de
InnoDB
garantit qu'aucune fragmentation
n'aura lieu dans l'index.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.