InnoDB et la réplication MySQL <<< |
Multiple tablespaces - putting each table into its own .ibd file | Tables InnoDB >>> |
16.7 Créer des tables InnoDB 16 Tables InnoDB Manuel de Référence MySQL 4.1 : Version Française . Comment utiliser les transactions de InnoDB avec différentes API . Convertir des tables MyISAM vers InnoDB . Comment les colonnes AUTO_INCREMENT fonctionnent avec InnoDB . Contraintes de clés étrangères FOREIGN KEY . InnoDB et la réplication MySQL ->Multiple tablespaces - putting each table into its own .ibd file |
16.7.6 Multiple tablespaces - putting each table into its own .ibd fileNOTE IMPORTANTE : si vous passez en version InnoDB-4.1.1 ou plus récent, il devient très difficile de retourner en versions 4.0 ou 4.1.0! Ceci est dû au fait que les versions antérieures de InnoDB ne sont pas comptatibles avec les espaces de tables multiples. Si vous devez revenir à une vieille version 4.0, vous devez faire des exports des tables, et recréer tout votre espace de tables InnoDB. Si vous n'avez pas créé de nouvelles tables sous InnoDB >= 4.1.1, et que vous devez revenir rapidement en arrière, vous pouvez passer directement en versions 4.0.18, ou plus récent. Avant de faire un retour en arrière direct en version 4.0.xx, vous devez terminer toutes les connexions, et laisser mysqld vider les buffers d'insertion, jusqu'à ce que SHOW INNODB STATUS indique que le thread principal soit dans un état de waiting for server activity . Alors, vous pouvez éteindre le serveur mysqld et démarrer votre version 4.0.18 ou plus récent. Un retour en arrière direct n'est pas recommandé, car il n'a pas été totalement testé. Depuis MySQL-4.1.1, vous pouvez stocker chaque table InnoDB et ses index dans son propre fichier. Cette fonctionnalité est appelé espaces de tables multiples, car chaque table a son propre espace de table. Vous pouvez activer cette fonctionnalité en utilisant la ligne
Si vous supprimez la ligne innodb_file_per_table du fichier my.cnf , alors InnoDB créera les tables dans le fichier ibdata . Les vieilles tables que vous aviez dans le fichier ibdata avant la mise à jour en >= 4.1.1 resteront en place, ils ne seront pas convertis en fichiers .ibd . InnoDB a toujours besoin du système d'espace de tables, les fichiers .ibd ne sont pas suffisants. Le système d'espaces de table est constitué des fichiers classiques ibdata . InnoDB y place son dictionnaire de données interne, et ses historiques d'annulation.Vous NE POUVEZ PAS DƒPLACER les fichiers .ibd à volonté , comme vous pouvez le faire avec les tables MyISAM. Ceci est dû au fait que les définitions de tables sont stockées dans le système d'espace de tables InnoDB, et aussi, parceque InnoDB doit préserver la cohérence des identifiants de transactions et les numéros de séquence des logs. Vous pouvez déplacer le fichier .ibd et la table associée d'une base à l'autre (dans la même installation MySQL/InnoDB) avec la classique commande RENAME :
La liste de tâche include la possibilité de déplacer les fichiers .ibd vers une autre installation MySQL/InnoDB. Cela impose la remise à zéro des numéros de transactions et des séquences de fichiers de log du fichier .ibd . |
<< | Multiple tablespaces - putting each table into its own .ibd file | >> |
InnoDB et la réplication MySQL | Créer des tables InnoDB | Tables InnoDB |