L'optimisation de MySQL pour ALTER TABLE de InnoDB

Très bientôt, nous aurons besoin de faire des modifications de schéma à notre base de données de production. Nous avons besoin de minimiser les temps d'arrêt pour cet effort, cependant, les instructions ALTER TABLE vont courir pendant un certain temps. Nos plus grandes tables de 150 millions d'albums, le plus grand fichier de la table est de 50G.
Toutes les tables sont en InnoDB, et il a été mis en place comme un gros fichier de données (au lieu d'un fichier par table).
Nous sommes en cours d'exécution MySQL 5.0.46 sur un 8 core de la machine, 16G de mémoire et un RAID10 config.

J'ai une certaine expérience avec MySQL tuning, mais c'est généralement axé sur le lit ou écrit à partir de plusieurs clients. Il y a beaucoup d'info pour être trouvé sur Internet à ce sujet, cependant, il semble y avoir très peu d'informations sur les meilleures pratiques pour (temporairement) le paramétrage de votre serveur MySQL pour accélérer l'instruction ALTER TABLE sur les tables InnoDB, ou pour l'INSERTION DANS .. SÉLECTIONNER (nous allons probablement utiliser ce lieu de l'instruction ALTER TABLE pour avoir un peu plus de possibilités pour accélérer un peu les choses).

Le schéma changements que nous prévoyons de faire est d'ajouter une colonne de type entier à toutes les tables et faire la clé primaire, au lieu de l'actuelle clé primaire. Nous avons besoin de garder les "anciens" de la colonne afin d'écraser les valeurs existantes n'est pas une option.

Ce serait l'endroit idéal pour obtenir cette tâche fait aussi vite que possible?

InformationsquelleAutor schuilr | 2009-03-17