httpwebwitch - 4:14 pm on Aug 31, 2010 (gmt 0)
We have a MyISAM table that is locking up under heavy load. Sometimes it even crashes the database. This is a table that gets a remarkable number of writes of all kinds: Updates, Inserts, Deletes.
We need to switch this table over to InnoDB.
I've chosen one or the other before, but always when setting up the db schema. I've never had to change engines on a full, running database.
I have some questions:
1) How long will it take?
the table is over 5 million rows
size is 825.2 MB
it's getting hit more than 50 times per second, at peak load
Is this like, 2 minutes, or 2 hours? What kind of downtime/interruption can I expect?
2) Is it safe to do this change "hot"?
eg. ALTER TABLE table_name ENGINE = InnoDB;
If I do this while the traffic is flowing (I'd choose a slow time of day, like 4am), will it blow up?
3) Will this introduce any functional glitches?
to wit: will the table work just like it did before. If I introduce functional bugs into this system, my arse is garse.
4) Is there a strict recommended procedure for doing this that I should be aware of?
Please help - traffic is growing daily and my database is groaning under the load. I want to do this in the next 48 hours