MySQL - speed up execution of ALTER TABLE
create a new table like your source table.
alter that new table the way you want.  
insert your data into the new table.
create indexes etc. as needed on the new table.
rename your old table to something like ..._old or whatever.
rename your new table to the former name of the old one.
copy any missing rows from the _old table to the new one.
done :)