In fact, from what I've seen it seems better to use MyISAM when you don't need support for ACID transactions.
1. Yank power cord while db writes are happening.
2. Grow the tables over a couple of GB in size.
Hopefully compressed tables will improve matters.
The big turn-off for me with MyISAM is that I can run a script to create some tables and setup for FK dependancies, and it will happily run it without errors, but won't enforce the constraints I created. Terrible behavior. I need foreign keys, transactions, row locking, etc...
Of course I now happily use PostgreSQL:)
I spent some time optimising it, not a lot of time, maybe a few hours over the course of a year. And even then mostly due to changing machines. It was quite easy to do, reading the manual page and increasing some buffers and so on. Nothing too complex.
We were running into problems in terms of server capacity. On the advise of a friend and just about every comparison on the Internet (notable exception there is the MySQL manual, BTW), we thought we'd give InnoDB a try. I read up on some of the configuration parameters, set some things to values that seemed sane and did a conversion.
Converting from MyISAM to InnoDB took over one hour for one database of about 800M. The server nearly died from that experiment. (Even though only one/tenth of the databases were switched over to InnoDB. The rest was still on MyISAM.) After a few hours to make sure it wasn't an accident, we switched back to MyISAM.
The most concise summary of the performance difference is probably given by comparing the conversion times. From MyISAM to InnoDB took over one hour (1 hour, 8 minutes, 10.74 seconds to be exact). From InnoDB to MyISAM took 2 minutes and 15.35 seconds.
The results were pretty terrible. Ever since I'm convinced InnoDB does not work well with our environment and application.