In the last episode (Jan 12), mos said: > At 12:14 PM 1/12/2009, Dan Nelson wrote: > >In the last episode (Jan 12), mos said: > > > I'm using MySQL 5.1 and if I execute: > > > > > > alter table mytable delay_key_write=1; > > > > > > it takes about an hour to rebuild the table. Why? As far as I > > > know it is not changing the table structure. So why does it have > > > to make a copy of the table and reload all the data? > > > >Mysql plays it safe and assumes that any table modification requires > >a full rebuild. 5.1 knows that certain settings don't require a > >full rebuild, but delay_key_writes isn't one of them (and some that > >are marked as fast shouldn't be - see > >http://bugs.mysql.com/bug.php?id=39372 ). > > 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 shouldn't require one; at worst it would require flushing all dirty key blocks. Historically, all "ALTER TABLE" commands always did a full table rebuild, and only recently has the ability to do quick ALTER's appeared. Maybe they're adding one flag at a time to the quick list, or something. -- Dan Nelson dnel...@allantgroup.com -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/mysql?unsub=arch...@jab.org