There's plenty of discussions centered on the choice between the MySQL MyISAM and InnoDB engines. I've illustrated a case that has bitten me in the past.
The analogy is helpful, but leaves some things out. In one of the grocery stores, you'll find that if the lights flicker off and for just a second, half the products on the shelves may end up unusable. And if your store gets past a certain size, a sinkhole may appear and suck most of your inventory underground with no warning.<p>The only reason I can think of for using MyISAM tables in a web app is the terrible default InnoDB settings in MySQL. Users unfamiliar with InnoDB may not realize that the awful performance is an artifact of bad configuration, and easily fixed.
Man this is annoying:<p>1. The MyISAM/InnoDB debate is so stale it stinks. If you're using MySQL, you should be using InnoDB unless you know exactly why you should use MyISAM. None of these issues are relevant until you have alot of concurrency and uptime/transactions/integrity are radically more important than potentially faster SELECT statements on MyISAM.<p>2. Did HN really just put this flaccid article to the top of the list? Aren't we more technical than this?
I'm still not sure why folks still use MyISAM. I'm sure there may be some edge case where it makes more sense, but in generally InnoDB seems like a better choice (not just regarding row level locking). Or postgres:)