>> Why would delay_key_writes require a table rebuild? It's not
>> modifying the data. Reloading tens of millions of rows for several
>> hours seems to be a waste of time.
It probably flips a bit in the .frm file or something like that, but I
have not investigated it myself.
My guess is that you can "hack" this to do what you want. We wrote
about this in our book -- you can alter ENUM lists without a table
rebuild, for example. I'm betting you can do the same thing here.
Rather than describe the whole thing let me show you the blog post
Aurimas wrote about it:
Baron Schwartz, Director of Consulting, Percona Inc.
Our Blog: http://www.mysqlperformanceblog.com/
Our Services: http://www.percona.com/services.html