Devo periodicamente apportare modifiche alle tabelle in mysql 5.1, aggiungendo principalmente colonne. Molto semplice con il comando alter table. Ma le mie tabelle ora hanno fino a 40 milioni di righe e stanno crescendo rapidamente ... Quindi quei comandi alter table richiedono diverse ore. Tra un paio di mesi ci vorranno giorni immagino.
Dal momento che sto usando Amazon RDS, non posso avere server slave con cui giocare e quindi promuovere da master. Quindi la mia domanda è se c'è un modo per farlo con tempi di fermo minimi? Non mi dispiace un'operazione che richiede ore o addirittura giorni se gli utenti possono ancora usare il db ovviamente ... Possono almeno leggere mentre le colonne vengono aggiunte? Cosa succede se la mia app tenta di scrivere? Inserisci o aggiorna? Se fallisce immediatamente non è poi così male, se si blocca e causa problemi al server db, questo è un grosso problema.
Questo deve essere un problema di ridimensionamento abbastanza comune, tutti hanno bisogno di aggiungere colonne .. Che cosa viene in genere fatto a un db di produzione? Slave -> migrazione principale?
Aggiornamento - Ho dimenticato di menzionare che sto usando il motore di archiviazione innodb