9

Pretty straightforward question.

I use InnoDB for everything else, for a couple of reasons. Is it a performance hit over MyISAM for a 'high-traffic' table?

Greg
  • 7,782
  • 7
  • 43
  • 69
  • @Charles, MEMORY is a great choice, because it will be waay faster than anything else. Only issue is that session data won't persist between MySQL restarts. – Chris Henry Jul 29 '10 at 05:13
  • 1
    @Greg: MEMORY = [MEMORY](http://dev.mysql.com/doc/refman/5.1/en/memory-storage-engine.html) :-) – Mike Jul 29 '10 at 05:25
  • @Chris, while that is true, MySQL restarts shouldn't occur in production. – Charles Jul 29 '10 at 05:50
  • You also need to define 'high-traffic'. I've seen a website with over 6000 active sessions in a MyISAM table and not break a sweat. – staticsan Jul 29 '10 at 05:54
  • @Charles, Mike -- thank you! I hadn't even considered that. @staticsan: Afraid I can't put a number on it at this time. – Greg Jul 29 '10 at 06:27
  • @Charles Restarts occur pretty much everywhere. How do you deal with configuration changes, and those wonderful times when someone trips over the cord? – Chris Henry Jul 29 '10 at 15:22
  • @Chris, a fair point. However, at that point the entire site is likely to go down, so losing only session data is likely to be the least of our cares. – Charles Jul 29 '10 at 15:26

1 Answers1

10

Since you're looking at a pretty even mix of read/write traffic, InnoDB is the better choice. MyISAM's full-table locks on every write would probably be murder. MyISAM fairs better with 90%+ read or 90%+ write situations.

I believe that's mentioned in High Performance MySQL

Frank Farmer
  • 38,246
  • 12
  • 71
  • 89