Je dois périodiquement apporter des modifications aux tables dans mysql 5.1, principalement en ajoutant des colonnes. Très simple avec la commande alter table. Mais mes tables ont maintenant jusqu'à 40 millions de lignes et elles se développent rapidement ... Donc, ces commandes de modification de table prennent plusieurs heures. Dans quelques mois, cela prendra des jours, je suppose.
Étant donné que j'utilise amazon RDS, je ne peux pas avoir de serveurs esclaves avec lesquels jouer, puis promouvoir en tant que maître. Donc, ma question est de savoir s'il existe un moyen de le faire avec un temps d'arrêt minimal? Cela ne me dérange pas qu'une opération prenne des heures voire des jours si les utilisateurs peuvent toujours utiliser la base de données bien sûr ... Peuvent-ils au moins lire pendant l'ajout de colonnes? Que se passe-t-il si mon application essaie d'écrire? Insérer ou mettre à jour? S'il échoue immédiatement, ce n'est pas si grave, s'il se bloque et cause des problèmes au serveur de base de données, c'est un gros problème.
Cela doit être un problème de mise à l'échelle assez courant, tout le monde doit ajouter des colonnes. Que fait généralement une base de données de production? Esclave -> migration maître?
Mise à jour - J'ai oublié de mentionner que j'utilise le moteur de stockage innodb