Why is dropping an index on MyISAM table so slow?

If you want to micromanage the dropping of the index, why not automate yourself ?

CREATE TABLE phpbb_posts_new LIKE phpbb_posts;
ALTER TABLE phpbb_posts_new DROP INDEX post_text;
ALTER TABLE phpbb_posts_new DISABLE KEYS;
INSERT INTO phpbb_posts_new SELECT * FROM phpbb_posts;
ALTER TABLE phpbb_posts_new ENABLE KEYS;
ALTER TABLE phpbb_posts RENAME phpbb_posts_old;
ALTER TABLE phpbb_posts_new RENAME phpbb_posts;
DROP TABLE phpbb_posts_old;

This is essentially what doing the ALTER TABLE would do 'under the hood'

Doing it this way will let you see the timing of each of these internal steps.

UPDATE 2011-10-10 14:08 EDT

I actually researched this personally. I remember complaining to MySQL about how slow adding indexes were when adding or dropping and suggested how they can fix it. That was back in October 2006.

Then, suddenly, out of nowhere, someone asked about this same issue on May 12, 2011. The person posting the question (JIStone) even referenced my original post to MySQL. I did not realize it, until about 7 minutes later, that I was actually addressing my own 5-year-old post.


Why? Because the developers made mistakes?! Why should there be a bug report when it isn't a bug- So wait until it got fixed or fix it yourself- As you even have a workaround you can live with it.

But the proper answer would be that DROP INDEX doesn't lock the table while executing. And therefore it takes more time to allow reading and writing while dropping- And ALTER TABLE locks the table and so can concentrate on the dropping process.