The table is locked when executing DDL queries. This does not mean that the server does not accept requests for other sessions when it is blocked, but they are in the queue and there is probably a timeout before performing ALTER TABLE. Depending on factors such as hardware, table structure and, of course, the number of rows (which, as you said, are quite high), the change will take some time.
In MySQL 5.5 (faster index creation, innodb), an 8-core processor, chip disks that change the 5 mil row table with multiple indexes, take about 15-20 minutes in our case.
I suggest creating a copy and changing the copy. Once you are done, you will have to redo the data. Facebook had to handle it at a higher level, check it out
http://m.facebook.com/note.php?note_id=430801045932
Tho, I canβt promise that all this will work safely in MyISAM Engine
EDIT:
Percona has created a toolkit that seems to work on all storage engines:
http://www.mysqlperformanceblog.com/2012/04/05/percona-toolkit-2-1-with-new-online-schema-change-tool/
In this release, we present the new version of pt-online-schema-change, a tool that allows you to ALTER large tables without locking or downtime. As you know, MySQL locks tables for most ALTER operations, but pt-online- changing a schema performs ALTER without any lock. Client applications can continue reading and writing to the table without interruption.
source share