3 Common Rails + MySQL Mistakes
engineyard.com
engineyard.com
The select for update thing, though, sounds like a table type selection issue. Doesn't innodb handle locking at roughly row level (maybe db page)? Seems like that one is for people who stick with MyISAM. If you're doing concurrency sensitive stuff, pick a better storage engine (or more robust db).