Sì, dovrebbe essere più veloce di eseguire una singola istruzione ALTER TABLE di due.
Nella mia esperienza (con InnoDB su 5.1 e 5.5), MySQL non sembra modificare la tabella "sul posto". MySQL crea effettivamente una nuova tabella, come copia della vecchia tabella con le modifiche specificate.
Due istruzioni separate richiedono che MySQL esegua l'operazione di copia due volte.
Con una sola istruzione, si offre a MySQL l'opportunità di apportare tutte le modifiche con una sola operazione di copia. (Non conosco i dettagli degli interni MySQL, ma è possibile che MySQL faccia effettivamente la copia due volte.)
Altri motori di database (MyISAM et al.) Possono essere elaborati in modo diverso.
Credo che il plugin InnoDB e/o versioni più recenti di InnoDB in MySQL (> 5.5) hanno alcuni algoritmi altri rispetto al metodo "copia", almeno per alcune modifiche, che consentono il tavolo per ancora essere disponibile mentre ALTER TABLE è in esecuzione (per le richieste di lettura). Ma non conosco tutti i dettagli.
Esegui questa operazione in modo intensivo e sotto carico? –
@Bencaine Importa? Voglio dire quanto spesso hai intenzione di farlo. Quasi mai, giusto? – Strawberry
Misuralo e scopri ... –