La tabella è bloccata mentre vengono eseguite le interrogazioni DDL. Questo non significa che il server non accetti le query su altre sessioni mentre è bloccato, ma sono in coda e probabilmente scadono prima che ALTER TABLE sia fatto. A seconda di fattori come l'hardware, la struttura della tabella e naturalmente la quantità di righe (che hai detto è piuttosto alta) l'alterazione richiederà un po 'di tempo.
Su MySQL 5.5 (creazione dell'indice più veloce, innodb), CPU a 8 core, dischi di chip, la modifica di una tabella di righe da 5 mil con diversi indici richiede circa 15-20 minuti nel nostro caso.
Suggerisco di creare una copia e di alterare la copia. Dovrai rieseguire il delta dei dati dopo aver finito. Facebook ha avuto a che fare con questo su un livello più elevato modo, controllare questo fuori
http://m.facebook.com/note.php?note_id=430801045932
Tho, non posso promettere questo sarebbe tutto il lavoro in modo sicuro sul MyISAM motore
EDIT:
Percona creato un toolkit che lavora a quanto pare su tutti i motori di archiviazione:
http://www.mysqlperformanceblog.com/2012/04/05/percona-toolkit-2-1-with-new-online-schema-change-tool/
Con questa release abbiamo introdurre una nuova versione di pt-online-schema-cambio, uno strumento che consente di modificare tabelle di grandi dimensioni con nessun blocco o i tempi di inattività. Come sapete, MySQL blocca le tabelle per la maggior parte delle operazioni ALTER, ma pt-online- modifica dello schema esegue l'ALTER senza qualsiasi blocco. Le applicazioni client possono continuare leggere e scrivere la tabella senza interruzioni.
fonte
2012-12-02 10:29:26
Clona, punto di riferimento, piano, distribuire. – soulseekah
Che motore di database stai usando? – Barmar
@Barmar Penso che tu intenda MyISAM. DB è MySQL. – SimonW