What’s the deal with MyISAM vs. InnoDB for Rails? Here’s what I know and think I know so far:
Reasons to use MyISAM:
- Faster according to anecdotal evidence. But is that really true, and how much does it matter given other factors?
- Easy backups are easy with mysqlhotcopy
- Full-text indexing
Reasons to use InnoDB:
- Transactions
- Foregin keys
- Row-level locking
- Rails defaults to InnoDB when creating new tables
- You can delete your Rails sessions in one go without locking the whole damn sessions table
I’m leaning towards using InnoDB, because:
- It’s the default for Rails so I don’t have to work around it
- It has more granular locking, which is good if you plan on getting lots of traffic
- It has transactions, which is always healthy
- You can do backups using mysqldump, which is OK
- You can do your searches with Ferret, which is much better than the MySQL full text index, anyway
- You can delete your Rails sessions in one go without locking the whole damn sessions table
Is there an official recommendation? What do some of the big-site folks out there do?

6 responses so far ↓
1 DHH // Aug 04, 2006 at 07:38 PM
2 Thijs van der Vossen // Aug 04, 2006 at 08:12 PM
3 Phil // Aug 04, 2006 at 08:19 PM
4 Bob Silva // Aug 05, 2006 at 12:36 AM
5 Sean Treadway // Aug 07, 2006 at 12:46 AM
6 random@striker.com // Aug 10, 2006 at 01:36 PM